按位取反运算:int a=16,c=~a;,变量c的值为多少??
答案:4 悬赏:30 手机版
解决时间 2021-02-27 20:14
- 提问者网友:溺爱和你
- 2021-02-27 13:28
按位取反运算:int a=16,c=~a;,变量c的值为多少??
最佳答案
- 五星知识达人网友:不想翻身的咸鱼
- 2021-02-27 14:06
取反~要把符号位也考虑进去:把操作数各位0变1, 1变0
要考虑符号位的是
左移:把左操作数左移指定位数,右端空位置补0
右移:把做操作数右移指定位数,左端空位置上的值与原来的符号为相同,对无符号数左端移入0;
#include
void main(){
int a = 16, b = 10, c;
c = ~16;
printf("%d\n",c);
c = a<<2;
printf("%d\n",c);
c = a>>2;
printf("%d\n",c);
}
-17
64
4
Press any key to continue
要考虑符号位的是
左移:把左操作数左移指定位数,右端空位置补0
右移:把做操作数右移指定位数,左端空位置上的值与原来的符号为相同,对无符号数左端移入0;
#include
void main(){
int a = 16, b = 10, c;
c = ~16;
printf("%d\n",c);
c = a<<2;
printf("%d\n",c);
c = a>>2;
printf("%d\n",c);
}
-17
64
4
Press any key to continue
全部回答
- 1楼网友:三千妖杀
- 2021-02-27 17:42
同意
- 2楼网友:廢物販賣機
- 2021-02-27 16:18
-17
位运算不考虑符号位.
位运算不考虑符号位.
- 3楼网友:一叶十三刺
- 2021-02-27 15:14
首先a用二进制表示为0001 0000,~a就是将a的二进制形式按位取反,得到为答案应该是-17
所有的位都参与运算,它根本不管每个位的含义!
#include
main()
{
int a=16,c=~a;
printf("%d\n",c);
}
输出 -17
所有的位都参与运算,它根本不管每个位的含义!
#include
main()
{
int a=16,c=~a;
printf("%d\n",c);
}
输出 -17
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯