当前位置: 首页 > news >正文

【C语言】字符型在计算机中的存储方式

ASCII对照表:https://www.jyshare.com/front-end/6318/

ASCII(American Standard Code for Information Interchange,美国信息互换标准代码,ASCII)是基于拉丁字母的一套电脑编码系统。它主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 646。

查看系统中的ascii码:man ascii (显示如下/不完整)

   Oct   Dec   Hex   Char                        Oct   Dec   Hex   Char────────────────────────────────────────────────────────────────────────000   0     00    NUL '\0' (null character)   100   64    40    @001   1     01    SOH (start of heading)      101   65    41    A002   2     02    STX (start of text)         102   66    42    B003   3     03    ETX (end of text)           103   67    43    C004   4     04    EOT (end of transmission)   104   68    44    D005   5     05    ENQ (enquiry)               105   69    45    E006   6     06    ACK (acknowledge)           106   70    46    F007   7     07    BEL '\a' (bell)             107   71    47    G010   8     08    BS  '\b' (backspace)        110   72    48    H011   9     09    HT  '\t' (horizontal tab)   111   73    49    I012   10    0A    LF  '\n' (new line)         112   74    4A    J013   11    0B    VT  '\v' (vertical tab)     113   75    4B    K014   12    0C    FF  '\f' (form feed)        114   76    4C    L015   13    0D    CR  '\r' (carriage ret)     115   77    4D    M016   14    0E    SO  (shift out)             116   78    4E    N017   15    0F    SI  (shift in)              117   79    4F    O020   16    10    DLE (data link escape)      120   80    50    P021   17    11    DC1 (device control 1)      121   81    51    Q022   18    12    DC2 (device control 2)      122   82    52    R023   19    13    DC3 (device control 3)      123   83    53    S024   20    14    DC4 (device control 4)      124   84    54    T025   21    15    NAK (negative ack.)         125   85    55    U026   22    16    SYN (synchronous idle)      126   86    56    V027   23    17    ETB (end of trans. blk)     127   87    57    W030   24    18    CAN (cancel)                130   88    58    X031   25    19    EM  (end of medium)         131   89    59    Y032   26    1A    SUB (substitute)            132   90    5A    Z033   27    1B    ESC (escape)                133   91    5B    [034   28    1C    FS  (file separator)        134   92    5C    \  '\\'035   29    1D    GS  (group separator)       135   93    5D    ]036   30    1E    RS  (record separator)      136   94    5E    ^037   31    1F    US  (unit separator)        137   95    5F    _040   32    20    SPACE                       140   96    60    `041   33    21    !                           141   97    61    a042   34    22    "                           142   98    62    b043   35    23    #                           143   99    63    c044   36    24    $                           144   100   64    d045   37    25    %                           145   101   65    e046   38    26    &                           146   102   66    f047   39    27    '                           147   103   67    g050   40    28    (                           150   104   68    h051   41    29    )                           151   105   69    i052   42    2A    *                           152   106   6A    j053   43    2B    +                           153   107   6B    k054   44    2C    ,                           154   108   6C    l055   45    2D    -                           155   109   6D    m056   46    2E    .                           156   110   6E    n057   47    2F    /                           157   111   6F    o060   48    30    0                           160   112   70    p061   49    31    1                           161   113   71    q062   50    32    2                           162   114   72    r063   51    33    3                           163   115   73    s064   52    34    4                           164   116   74    t065   53    35    5                           165   117   75    u066   54    36    6                           166   118   76    v067   55    37    7                           167   119   77    w070   56    38    8                           170   120   78    x071   57    39    9                           171   121   79    y072   58    3A    :                           172   122   7A    z073   59    3B    ;                           173   123   7B    {074   60    3C    <                           174   124   7C    |075   61    3D    =                           175   125   7D    }076   62    3E    >                           176   126   7E    ~077   63    3F    ?                           177   127   7F    DEL

例如,字符串:“hello world” —>字符串多个字符组合在一起(C语言中没有string类型,以字符数组的形式存储字符串:“hello world” )

char a = 'A' ---> 大小: 1个字节:  8个bit位
存储:  'A' 保存在 变量a里面  --->存储必然和二进制有关
单纯‘A’ 没有二进制怎么办呢? ---> C库就制作一种对应码  ---> ASCII码 (A码)会记录一些特殊字符的对应的数值,用于计算机的存储数据。例如:‘A’ ----> 65

所以,字符**‘A’**在ascii码表中表示为:

Oct   Dec   Hex   Char                        Oct   Dec   Hex   Char
────────────────────────────────────────────────────────────────────────
000   0     00    NUL '\0' (null character)   100   64    40    @
001   1     01    SOH (start of heading)      101   65    41    A  ---> 'A'--65--0100 0001
002   2     02    STX (start of text)         102   66    42    B
字符和整型的大小不一样 
双方的标志位也不一样  :最终需要通过标志来判断 65到底普通数值,还是字符'A'

分析: 字符串在计算机中的存储(对照ASCII码表):

“hello world”  --->人眼看到的 
“hello world\0”--->在缓冲区的样子  
一次解码: 'h''e''l''l''o'' ''w''o''r''l''d''\0' --->字符串真实模样 ,由多个字符串联在一起
通过A码:  '104''101''108'‘108’‘111’‘32’ --->自行操作 
存储: 将A码转化为二进制 '01101000'  '01100101'   '01101100'  ‘01101100’   ‘01101111’   ‘00100000’
http://www.lryc.cn/news/470901.html

相关文章:

  • python:ADB通过包名打开应用
  • 机器翻译技术:AI 如何跨越语言障碍
  • 单调栈应用介绍
  • 部署前后端分离若依项目--CentOS7Docker版
  • PH47代码框架功能速查
  • UVM寄存器模型:uvm_reg_adapter
  • 总结OpenGL和pyrender安装和使用过程中的坑
  • 温湿传感器(学习笔记下)
  • 期刊论文写作之word模板
  • 雷池社区版OPEN API使用教程
  • LSTM(Long Short-Term Memory,长短期记忆网络)在高端局效果如何
  • 模组操作宝典:4种关机重启技巧,让你的设备运行无忧
  • 利用API接口实现旺店通和金蝶系统的无缝数据对接
  • 热题100(hash)
  • Ubuntu下Mysql修改默认存储路径
  • LVGL移植教程(超详细)——基于GD32F303X系列MCU
  • 《计算机原理与系统结构》学习系列——处理器(中)
  • 深入解析 OceanBase 数据库中的局部索引和全局索引
  • 2024防晒衣市场社媒营销洞察报告
  • 【Ubuntu20.04 Visual Studio Code安装】【VSCODE】
  • 贪心算法day(1)
  • 窗口函数sql使用总结
  • python单因素分析
  • 「C/C++」C++ STL容器库 之 std::list 双向链表容器
  • 应用程序框架进阶<HarmonyOS第一课>
  • 【C++】vector<string>-动态数组存储多个string
  • 66Analytics 汉化版,网站统计分析源码,汉化前台后台
  • 蓝桥杯单片机STC15F2K60S2第十四届省赛代码详细讲解(附完整代码)
  • [免费]SpringBoot+Vue智慧校园(校园管理)系统[论文+源码+SQL脚本]
  • 景区导航地图怎么实现?基于LBS与3D GIS的智慧景区导航导览系统技术路线