11:25老师的原话:只需要找出这个正数的补码、通过对这个正数的补码二进制进行计算就可以得到....
(正数的原码、反码、补码都一样)
原码的定义好像有点儿牵强,后面反码的求法也和我们大学老师讲的IEEE754标准不一样/
11:25老师的原话:只需要找出这个正数的补码、通过对这个正数的补码二进制进行计算就可以得到....
(正数的原码、反码、补码都一样)
原码的定义好像有点儿牵强,后面反码的求法也和我们大学老师讲的IEEE754标准不一样/
2014-10-06
这个问题提的很好,欢迎大家拍砖
需要说明的的是:上面讲的:
(1)反码是二进制数的反码,不是整数的反码;
(2)数在计算机中的表示形式可以是补码、原码、反码,但是负数采用了其正数的补码形式表示。详细如下:
一、原码 反码 补码都是指的数的一种二进制表示形式,
因此整数的表示方式有三种:原码 反码 补码
例如:5的原码00000000 00000000 00000000 00000101
11111111 11111111 11111111 11111010是(原码)00000000 00000000 00000000 00000101的反码,不是(整数)5的反码
5的反码表示形式是00000000 00000000 00000000 00000101,是根据定义(正数的补码和原码一样)来的,无法改变的。
-5 在计算机中表达为:11111111 11111111 11111111 11111011(以其正数的补码形式表示)转换为十六进制:0xFFFFFFFB。
而-5的原码是10000000 00000000 00000000 00000101
上面讲的都是32bit的。
再说明个一个字节(8bit)的例子
+7的原码为: 00000111 +7的反码为:00000111 +7的补码为: 00000111
-7的原码为: 10000111 -7的反码为: 11111000 -7的补码为: 11111001
-7在计算机中的二进制是如何表示呢,根据定义负数以其正数的补码形式表示 过程如下:
原码00000111->(二进制的,不是7的)反码11111000->补码11111001,就是-7的补码形式
举报