如何将一个C语言中的无符号整数转换成长尾词?
- 内容介绍
- 相关推荐
本文共计433个文字,预计阅读时间需要2分钟。
今天学习C语言的位运算,位运算是要将数字转换成二进制,对每一位操作数的每一位进行相应计算;
开头+篇+我定义了一个无符号整型60,对其进行按位取反的操作,程序输出为-61;
//+a=0011 1100unsign
今天在学习C语言的位运算,位运算是要将数字转换成二进制,对操作数的每一位进行相应计算;
开篇
我定义了一个无符号整数60,对其进行按位取反的操作,程序输出为-61
// a = 0011 1100
unsigned int a = 60;
int c = 0;
c = ~a;
// 1100 0011
printf("逻辑非位计算:%d\n", c);
疑惑
当我看到-61的时候,就有点疑惑了,因为60的二进制是0011 1100,按位取反后为1100 0011,首位表示符号位,那么100 0011转换为二进制是67,答案应该是-67啊
恍然大悟
我仔细观察代码后发现,变量 a 的类型是 unsigned int,而变量 c 的类型是 int。
本文共计433个文字,预计阅读时间需要2分钟。
今天学习C语言的位运算,位运算是要将数字转换成二进制,对每一位操作数的每一位进行相应计算;
开头+篇+我定义了一个无符号整型60,对其进行按位取反的操作,程序输出为-61;
//+a=0011 1100unsign
今天在学习C语言的位运算,位运算是要将数字转换成二进制,对操作数的每一位进行相应计算;
开篇
我定义了一个无符号整数60,对其进行按位取反的操作,程序输出为-61
// a = 0011 1100
unsigned int a = 60;
int c = 0;
c = ~a;
// 1100 0011
printf("逻辑非位计算:%d\n", c);
疑惑
当我看到-61的时候,就有点疑惑了,因为60的二进制是0011 1100,按位取反后为1100 0011,首位表示符号位,那么100 0011转换为二进制是67,答案应该是-67啊
恍然大悟
我仔细观察代码后发现,变量 a 的类型是 unsigned int,而变量 c 的类型是 int。

