简介:补码是一种用二进制表示有符号数的方法,也是一种将数字的正负号变号的方式,常在计算机科学中使用。
正数的补码:与原码相同。
【例1】+9的补码是00001001。(备注:这个是用8位的2进制来表示补码的,补码表示方式很多,还有16位2进制补码表示形式,以及32位2进制补码表示形式等。)
比方说-15的补码,在8位2进制里头是11110001,然而在16位2进制补码表示的情况下,就成了1111111111110001。
负数的补码:负数的补码是对其原码逐位取反,但符号位除外;然后整个数加1。
【例2】求-7的补码。
因为给定数是负数,则符号位为“1”。取反加一
-7的原码(10000111)→按位取反(11111000)(负数符号位不变)→加1(11111001)
已知一个数的补码求原码,两种情况
⑴如果补码的符号位为“0”,表示是一个正数,其原码就是补码。
⑵如果补码的符号位为“1”,表示是一个负数,那么求给定的这个补码的补码就是要求的原码。
【例3】已知一个补码为11111001,则原码是10000111(-7)。
补码为11111001 →按位取反 10000110(负数符号位不变)→加10000111