作业帮 > 综合 > 作业

求补码怎么求的...#include #include void main (){unsigned short int

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/05/01 09:09:51
求补码怎么求的...
#include
#include
void main ()
{
unsigned short int a;
unsigned short int getbits(unsigned short);
printf ("\ninput an octal number:");
scanf ("%o",&a);
printf ("%o\n",getbits(a));
}
unsigned short int getbits (unsigned short value)
{
unsigned int short z;
z=value&0100000;
if(z==0100000)
z=~value+1;
else
z=value;
return z;
}
输入152525怎么会输出25253呢?书上的例子,
程序让你输入的是8进制数字,所以152525是八进制的
化成二进制为1101 0101 0101 0101
判断第一位是1
z等于 取反+1 = 10 1010 1010 1010 +1 在打印成8进制就是25253了
再问: 谢谢,不过~value后,不是把符号位也反了吗? .... 越弄越晕啊,,,