10010110是补码,应先减去1变为反码,得10010101;
由反码取得源码即除符号位外其他为按位取反,得11101010,即十进制数的-106
算法2:负数补码速算法,由最低位(右)向高位(左)查找到第一个1与符号位之间的所有数字按位取反的逆运算
10010110是补码,符号位与最后一个1之间的所有数字按位取反,闷孙滚乎得11101010
两种算法得出同样结果
输入任意整数,输出32位的补码。输入其他,码胡结束程序。
#include<stdio.h>闷隐
int main()
{
int i,num=0
char s[33]={0}
while(1==scanf("%d",&num)){
for(i=0i<32i++){
s[i]= (0x01 &(num>>蚂模厅(31-i))) ? '1' : '0'
}
printf("%s\n",s)
}
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)