第五章运算器和运算方法5.1数据与文字的表示

5.1.1计算机中的数据
在这里插入图片描述
计算机中的数据不管是非数字数据还是数字数据最终都是变成0,1二进制数来存储的。
在这里插入图片描述
在这里插入图片描述
5.2数据的格式
在这里插入图片描述
数据三要素。
在这里插入图片描述引用组合数是为了表示方便,在计算机中仍存储二进制数。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
小数点前面是符号位,后面是具体的数值。
在这里插入图片描述
刚开始使用定点小数和定点整数结合起来表示。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
5.1.3定点数的表示方法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
正数只有原码,负数为了计算需要反码,补码。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
由于+0,-0的补码相同,所有-0的补码1 000 0000就表示-128。
-128 为10000000,1既代表符号位也代表数值位。16位的-128就是1加15个0。
-1为11111111,16位的-1的补码是16个1,32位的-1补码是32个1。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
64位计算机,int占4字节,short占2字节,unsigned int占4字节。
x:正数补码原码相同,127短除法除以16,转换十六进制0000007F。
y:先将十进制-9转换成二进制1000 0000 0000 1001,因为计算机存储的负数是补码,因此,补码为 1111 1111 1111 0111,再转换成十六进制FFF7。
z:100短除法除以16,00000064。
在这里插入图片描述
补码扩充位数只需要扩充符号位,符号位为1,前面全部补1,符号位为0,前面全部补0,
可以看到上述例子,-9从16位转换成32位只需要在前面填充1。
在这里插入图片描述
在这里插入图片描述
编译器按照函数的形式将short型数据按照int型输出,因此,隐式强制转换short转换为int。

5.1.3定点数的表示方法
在这里插入图片描述
在这里插入图片描述
如果是无符号数那么符号位x0没有直接就是数字。
定点小数的小数点在x0和x1之间,所以x0必须是0。
整数的小数点必须在末尾。

在这里插入图片描述
5.1.4浮点数的表示方法
在这里插入图片描述
在这里插入图片描述
0.264是精度,10的指数3就是范围。
计算机在存储表示浮点数时,只需要存放它的有效数字0.264,和表示范围指数3。存放在一个存储单元中。
在这里插入图片描述
纯小数:整数部分位0.小数部分不从0开始。
在这里插入图片描述
基数因为都是二进制,所以省略掉了。只存放指数和尾数。
数符表示正负,指数可以是正整数也可以是负整数。

在这里插入图片描述
现在的计算机使用IE754标准表示浮点数。
需要三部分组成,整个数的符号部分,指数部分和尾数部分。
早期的浮点数表示通常尾数部分使用一个定点纯小数来表示,前面都是0,省略掉,只存放小数点后的数字,存放四位数字来表示四位数。
但是这里的IE标准将第一个1挪到小数点前一位,大家都将第一位挪到小数点前,存放时可以省略小数点前一位。也就是只需要三位数的空间可以表示4位数。(最大的优势)
符号位占1位,阶码使用八位来表示,尾数23位。实际上用23位来表达了24位二进制数。

在这里插入图片描述
数符就是-1的1或者-1次方,如果是1那么结果就是-1,代表符号位1为负,
由于指数E采用了移码表示,因此求E真值需要-127得到e。
尾数加上隐藏的1,真值应该是1.M。

反过来给一个数 11.45转换成IE标准的32位单精度浮点数真值。
1.先化二进制为1011.0111,
2.移动小数点方便得到M,1.0110111 * 2三次方。
3.得到M为0110111后面补0,补足23位。
E = e + 127 = 3 + 127 = 130 = 1000 0010
S为0(正数)。
在这里插入图片描述
a:FFDD 1111 1111 1101 1101
b:FFFFFFDD 1111 1111 1111 1111 1111 1111 1101 1101
在这里插入图片描述
在这里插入图片描述
x: -1存储在计算机中是32个1,将x以%u无符号整型输出,32个1都是数值位,所以十进制输出为4294967295。 以%d就是原样输出-1.
y:本来就是无符号整型,以%u原样输出2147483648,2147483648原码为1000 0000 0000 0000 0000 0000 0000 0000,以%d输出将无符号整型转换成有符号整型,1变成符号位,存储的是补码,转换成源码1000 0000 0000 0000 0000 0000 0000 0000第一位即代表符号位也代表数值位,应该表示为-0,但是0只需要一个用+0表示,所以-0用来表示-2147483648。输出为-2147483648。

在这里插入图片描述
x int型四个字节,y short型两个字节,x存储的数值为:0000 0000 0000 0000 1100 1111 1100 0111,将y赋值给x时需要截位,变成1100 1111 1100 0111,short型时有符号类型,第一位1表示为符号位,存储的为补码,转换成源码:1011 0000 0011 1001,转换成十进制输出为-12345.
在这里插入图片描述
在这里插入图片描述
-27/64 = -0.421875
1.换成二进制-0.011011
2.小数点移动 1.1011 *2的-2次方
3.M为1011后面补0,补足23位,
S为1(负数),
E = e+127 = -2 + 127 = 125 = 1111 1010

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值