分一下三种情况回答问题
(1)正数
正整数的补码是其二进制表示,与原码相同。
例:+9的补码是00001001。
(2)负数
求负整数的补码,将其原码除符号位外的所有位取反(0变1,1变0,符号位为1不变)后加1。
同一个数字在不同的补码表示形式中是不同的。比如-15的补码,在8位二进制中是11110001,然而在16位二进制补码表示中,就是1111111111110001。以下都使用8位2进制来表示。
例:求-5的补码。
-5对应带符号位负数5(10000101)→除符号位外所有位取反(11111010)→加 00000001为 (11111011)
所以-5的补码是11111011。
(3)0的补码
数0的补码表示是唯一的,即
[+0]补=[+0]反=[+0]原=00000000
[ -0]补=11111111+1=00000000
十进制数的补码
例如.十进制12345转化成二进制是11000000111001,又因为是负的,前面补1,表示符号位.变成111000000111001,再除了符号位,各位取反,就是0变1,1变0,变成100111111000110,叫做它的反码,反码加1,就是原数的补码了,即100111111000111,要想化成十进制,再按位权展开就行了.有什么不清楚的就问我好了.