你的说法没有错,但不严密。应当这样说,所有的整数都有原码、反码、补码,只是正数的原码、反码、补码与原码相同。而无符号整数是按正数对待的,所以它的原码、反码、补码也与原码相同。这里说的反码与通常的按位取反不完全是一回事,这里的反码只对负数而言且高位的1是不变的,而通常说的按位取反则是包括最高位的。不知道当初的“理论家”为什么要搞出个反码、补码来,搞得初学者非常纠结;其实这里说的反码是为求补码服务的,而补码就是负整数在计哗阀糕合蕹骨革摊宫揩算机中的表示方法,为什么当初不搞成正整数与负整数的二进制表示不一样:3是011,而-3是101不就完了嘛?
+0和-0都是一个。
看看补码的原理就是了。
好像是绝对值按位取反+1.
128在8位补码是无法表示的,-128才能表示。
1000 0000是-128的补码,0的补码就是0。
实际上补码这个概念,适用天任何进制,困为其本质的定义为,若一个数X与另一个数Y相加正好得到X或Y的最小进位(注意要保持X或Y的长度相同),则称X 或Y互补,这个最小进位的数就称为“模”。例如十进制数1和9,其模是10,而09和91的模就是100,这样你就应该看到模要比其数多一位,那么128+128=256,正好产生了一个进位
晕,128在8位补码是无法表示的,-128才能表示。
1000 0000是-128的补码,0的补码就是0。
+0和-0都是一个。
看看补码的原理就是了。
好像是绝对值按位取反+1.