1.正整数的补码是其二进制表示,与原码相同
2.负数求补,将其对应正数二进制表示所有位取反(包括符号位, 0 变 1, 1变 0)后加 1。
一个8位的空间,如果表示无符号数范围是 [0,255] 即 unsigned char [0,2^8-1]
一个8位的空间,如果表示有符号数范围是 [-128,127] 即 char [-2^7,2^7-1]
负数求补码,补码求负数都是取反后,加1。
0的补码是0.
PS:
C语言中没有打印二进制的库函数。
打印二进制函数如下
//由于环境使用的是C++,就直接使用C++语法了
void disBin(char ch)
{
int i = 8;
while(i--)
{
if(1<<i & ch)
cout<<"1";
else
cout<<"0";
if(i%4 == 0)
cout<<" ";
}
putchar(10);
}
扫描二维码关注公众号,回复:
5301502 查看本文章