字符与字符串
ASCII码
ASCII码表
- 可印刷字符:32~126,其余为控制、通信字符
- 数字:48(0011 0000)~57(0011 1001)
- 大写字母:65(0100 0001)~90(0101 1010)
- 小写字母:97(0110 0001)~122(0111 1010)
ASCII码考点例题
例1:已知‘A’的ASCII码值为65,字符‘H’存放在某存储单元M中,求M中存放的内容。
首先明确,M中存放的是‘H’的ASCII码(二进制形式)。
再由‘A’的码值推出‘H’的码值:
- 思路1.
A是第1个字母,H是第8个字母,则H的码值 = 65 + (8-1) = 72
72 对应二进制为 100 1000,故M中存放的内容为0100 1000
- 思路2.
A的码值65写成二进制为0100 0001,A是第1个字母
H是第8个字母,故对应0100 1000,M中存放内容为0100 1000
例2:已知‘h’的ASCII码值为104,字符‘a’存放在存储单元M1中,字符‘z’存放在
存储单元M2中,求M1、M2中存放的内容。
a : 104 – (8-1) = 97 —> M1中内容为0110 0001
z : 104 + (26-8) = 122 —> M2中内容为0111 1010
汉字的表示和编码
例如;a拼音开头的几个字就是这样编码的
字形码是这样的
字符串
某计算机按字节编址(每个地址对应1B),从地址为2的单元开始,存储字符串“abc”。
其中 xxH是各字符的ASCII编码:
a:0110 0001 = 61H
b:0110 0010 = 62H
c:0110 0011 = 63H
\0: 0000 0000 = 00H(很多语言中,’ \0 ’作为字符串结尾标志)
有汉字是怎样存的呢?
其中有大端模式和小端模式:在所有计算机中,多字节数据都被存放在连续的字节序列中。根据数据中各字节的排列顺序不同,可能有“大端模式”、“小端模式”
例如:某计算机按字节编址,从地址为2的单元开始,存储字符串“abc啊”
它在地址中就是这样存的
其中 xxH是各字符的ASCII编码:
a:0110 0001 = 61H
b:0110 0010 = 62H
c:0110 0011 = 63H
啊:机内码= B0 A1H
\0: 0000 0000 = 00H