先不看负号(正用0表示,负用1表示,均加在数的最左端),8化成二进制是1000,若计算机的字长为8,明显位数不够,则在1000左端加0,加满八位(注:包括符号码在内)
原码是00001000(注:负数的原码就是其绝对值的二进制,而负数的二进制数用其补码表示)
反码是11110111
补码是11111000(注:补码是从右数起第一个数字1后按照写反码的方式写)
原码反码补码,都是强行规定的格式和方法。
并没有为什么的问题。
求这些码,先要指定位数。
按照八位:
原码:1000 1000。
反码:1111 0111。
补码:1111 1000。
计算机中整型数据都用补码表示,规则是0和正数的反码、补码与原码相同,而负数的原码、反码、补码各不相同,有另外的算法。下面以一字节为例回答此题:因为18是正数,它的反码、补码与它的原码同形,即用一字节表示时为00010010。
+123的原码是01111011 反码是01111011 补码是011110111-123的原码是11111011 反码是1000010补码是10000101