use*_*028 0 c c++ integer bit-manipulation
所以,如果我理解正确,整数是一个字节的集合,它代表基数为二的格式,如果你愿意的话.
因此,如果我有unsigned int test = 0,那么实际上应该只包含一个位字段,所有这些都是零.然而,
unsigned int test=0;
test=~test;
Run Code Online (Sandbox Code Playgroud)
产生-1.
我会认为这将填满所有的位'1',使整数与该系统上的整数一样大....
谢谢你的帮助!
unw*_*ind 12
你如何打印价值?
如果它显示为"-1"或大的无符号整数只是在打印出来时解释位的方式,则这些位本身不知道其中的差异.
您需要将其打印为unsigned值.
另外,正如其他答案所指出的那样,你对系统如何存储数字有很多建议; 不能保证数字和用于表示该数字的比特之间存在特定的相关性.
无论如何,获得此值的正确方法是#include <climits>然后使用UINT_MAX.
| 归档时间: |
|
| 查看次数: |
139 次 |
| 最近记录: |