我在接受采访时被问过,这台机器上的有效声明是不是16位?
以下是声明,
unsigned int zero = 0;
unsigned int compzero = 0xFFFF;
Run Code Online (Sandbox Code Playgroud)
它们都是有效的声明,是的,因为没有语法错误.
但是,如果您的目的是获得0(所有位反转)的补充,您应该使用:
unsigned int zero = 0;
unsigned int compzero = ~zero;
Run Code Online (Sandbox Code Playgroud)
与(例如)一个32位的unsigned int,0xffff并且~0分别为:
0000 0000 0000 0000 1111 1111 1111 1111
1111 1111 1111 1111 1111 1111 1111 1111
Run Code Online (Sandbox Code Playgroud)