nav*_*ige 0 c bit-manipulation bit
我正在尝试将char的8位转换为int的最低位.我知道从转换char到int很容易通过
int var = (int) var2;
Run Code Online (Sandbox Code Playgroud)
其中var2是类型char(甚至没有put (int)).
但是我想知道,如果我编写上面的代码,那么int只是随机的剩余最高有效(32-8 =)24位还是设置为0?
例如:我们var2可以00001001,如果我写上面的代码,是var那么00000000 00000000 00000000 00001001?
C11(n1570),§6.5.4演员
通过带括号的类型名称在表达式之前将表达式的值转换为命名类型.
因此,剩余的var设置为0.
顺便说一下,显性演员是不必要的.从转换char到int是隐式的.
C11(n1570),第6.3.1.1节布尔,字符和整数
如果a
int可以表示原始类型的所有值(由宽度限制,对于位字段),则该值将转换为int; 否则,它被转换为unsigned int.这些被称为整数促销.