首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

[待解决]位演算没有得到预期的结果

2013-07-04 
[待解决]位运算没有得到预期的结果位运算没有得到预期的结果/*题目:学习使用按位取反~.   1.程序分析:~01

[待解决]位运算没有得到预期的结果
位运算没有得到预期的结果

/*题目:学习使用按位取反~.   
1.程序分析:~0=1; ~1=0;
2.程序源代码:*/
#include <stdio.h>//包含标准输入输出头文件
//主函数
void main()
{
unsigned a,b;//定义整型变量
a=234;//二进制(1110 1010)
b=~a;//按位取反(0001 0101)
printf("\40: The a's 1 complement(decimal) is %d \n",b);
a=~a;
printf("\40: The a's 1 complement(hexidecimal) is %x \n",a);
}

[待解决]位演算没有得到预期的结果
[解决办法]
你想得到怎样的结果呢?

a=234;//二进制(00000000 00000000 00000000 1110 1010)
b=~a;//按位取反(11111111 11111111 11111111 0001 0101)


b的符号位为1,所有理解为负数,即按补码存储,原码为补码-1取反为100000000 00000000 0000000 1110 1011
所以b为-255,十六进制为fffffff15

热点排行