2.1 综述计算机中关于数符的表示方法,并举例说明。
数字
- 计算机中无符号数的表示
若无符号数保存在寄存器中,寄存器的位数,反映了无符号数的表示范围。
- 计算机中有符号数的表示
真值: 平时用的真实的值,带有符号的。
机器数: 保存在计算机中的数。
1.原码
原码由一位符号位和几位数值位表示,符号位为1表示负数,0则为正数。
例如:x=+1110 [x]原=0,1110
x=-1110 [x]原=1,1110
x=+0.1101 [x]原=0.1101
x=-0.1101 [x]原=1.1101
2.反码
反码就是将原本是负数的原码除符号位以外全部取反。反码因为优点不明显,所以不常用。
例如:x=+1110 [x]原=0,1110 [x]反=0,1110
x=-1110 [x]原=1,1110 [x]反=1,0001
x=+0.1101 [x]原=0.1101 [x]反=0.1101
x=-0.1101 [x]原=1.1101 [x]反=1.0010
3.补码
补码就是模减去负数的绝对值,在二进制中表现为各位取反末位加1,由于两数的相减可以用被减数加上减数的补码来代替,所以补码的优势十分明显。
例如:x=+1110 [x]原=0,1110 [x]补=0,1110
x=-1110 [x]原=1,1110 [x]补=1,0010
x=+0.1101 [x]原=0.1101 [x]补=0.1101
x=-0.1101 [x]原=1.1101 [x]补=1.0011
4.移码
所谓移码,就是将原本表示的数值加上一个偏置常数所得的数,通常是加上编码位数的最高位,即2^(n-1) 或 2^(n-1)-1,移码表示的好处就是能将负数转变为正数,从而避免了0表示不唯一且可以较好的比较两数的大小。
例如:x=+1110 [x]原=0,1110 [x]移=1,1110
x=-1110 [x]原=1,1110 [x]移=0,0010
x=+0.1101 [x]原=0.1101 [x]移=1.1101
x=-0.1101 [x]原=1.1101 [x]移=0.0011
5.总结
①最高位为符号位,书写上用“,”(整数)或“.”(小数)将数值部分和符号位隔开
②对于正数,原码 = 补码 = 反码
③对于负数,符号位为1,其数值部分
补码 = 原码除符号位外每位取反末位加 1
反码 = 原码除符号位外每位取反
④补码与移码只差一个符号位。
- 数的分类
定点数,浮点数,整数。其中浮点数是由符号位,阶码和尾数表示的,为了比较数值的大小,阶码通常用移码来表示。规格化16位浮点数的表示:由E阶码(移码表示)+S符号位+M尾数(补码表示)构成。32位短浮点数:1位符号位S+8位阶码E+23位尾数M。
例如:假设16位虚拟机中,阶码占5位,尾数占9位,数符、阶符各占1位。实数28.625的浮点数可表示为?
N=11100.101 =(0.11100101)×2^101 (101十进制表示5)则该数在16位虚拟机中的浮点数表示:0|0|00101|111001010
四、进制转换
前缀: 二进制:0b (数字0)
八进制:0o 或 0O (是数字0 和 字母小o 或 字母大O)
十进制:0D 或 0d (数字0)
十六进制:0x 或 0X(数字0) 或 使用后缀: H 表示!
字符
一、字符
- 字符:是各种文字和符号的总称,包括各个国家的文字,标点符号,图形符号,数字等。
- 字符集:字符集是多个符号的集合,每个字符集包含的字符个数不同。
- 字符编码:字符集只是规定了有哪些字符,而最终决定采用哪些字符,每一个字符用多少字节表示等问题,则是由编码来决定的。计算机要准确的处理各种字符集文字,需要进行字符编码,以便计算机能够识别和存储各种文字。
- 常见字符编码
首先来看一下常用的编码有哪些。其中 ANSI 在中国大陆即为 GBK(以前是 GB2312),最常用的是 GBK 和UTF8 无 BOM 编码格式。
三、ASCII 码说明
美国国家标准协会 ANSI 制定了一个标准,规定了常用字符的集合以及每个字符对应的编号,这就是 ASCII 字符集(Character Set),也称 ASCII 码。
那时候的字符编解码系统非常简单,就是简单的查表过程。例如将字符序列编码为二进制流写入存储设备,只需要在 ASCII 字符集中依次找到字符对应的字节,然后直接将该字节写入存储设备即可。解码二进制流的过程也是类似。
其中:
① 0~31及127(共33个)是控制字符或通信专用字符(其余为可显示字符),如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BS(退格)。
② 32~126(共95个)是字符(32是空格),其中48~57为0到9十个阿拉伯数字。
③ 65~90为26个大写英文字母,97~122号为 26 个小写英文字母,其余为一些标点符号、运算符号等。
④ 后128个称为扩展 ASCII 码。许多基于x86的系统都支持使用扩展(或“高”) ASCII。扩展ASCII 码允许将每个字符的第8位用于确定附加的128个特殊符号字符、外来语字母和图形符号。