| 
 | 
 
 本帖最后由 小蜗牛 于 2025-5-5 05:25 编辑  
 
1字节有8bit (字节<byte>) 
无符号:0~255, 有符号:-128~127 
 
2字节有16bit (短整数<short>, 火山视窗字符<wchar_t>) 
无符号:0~65535, 有符号:-32768~32767 
 
4字节有32bit (整数<int>, 单精度小数<float>, 逻辑型<bool>)  
无符号:0~4294967295, 有符号:-2,147,483,648~2,147,483,647 
 
8字节有64bit (长整数<long>, 双精度小数<double>)  
无符号:0~18,446,744,073,709,551,615, 有符号:-9,223,372,036,854,775,808~9,223,372,036,854,775,807 
 
 
 
从左到右,由低到高 
 
 
~ 位取反(100) 
返回x: 11011001111111111111111111111111 // -101 
参数1: 00100110000000000000000000000000 // 100 
说明: 逻辑取反, 0改成1,1改成0 
 
 
| 位或(2148, 32) 
返回x: 00100110000100000000000000000001 // -2147481500 
参数1: 00100110000100000000000000000000 // 2148 
参数2: 00100110000000000000000000000001 // 32 
说明: 两个参数中,只要有任何一个bit为1,那么就填充1,否则为0 
 
& 位与(2148, -2147483548) 
返回x: 00100110000000000000000000000000 // 100 
参数1: 00100110000100000000000000000000 // 2148 
参数2: 00100110000000000000000000000001 // -2147483548 
说明: 两个参数的同位bit,都必须为1,则填充1,否则填充0 
 
>> 位右移 (100, 1) 
返回x: 01001100000000000000000000000000 // 50 
参数1: 00100110000000000000000000000000 // 100 
参数2: 10000000000000000000000000000000 // 1 
说明: 向右移动指定位数,低位丢弃,高位补零。 
 
<< 位左移 (100, 1) 
返回x: 00010011000000000000000000000000 // 200 
参数1: 00100110000000000000000000000000 // 100 
参数2: 10000000000000000000000000000000 // 1 
说明: 向左移动指定位数低位补零,高位溢出丢弃。 
 
^ 位异或 (100, 1)  
返回x: 10100110000000000000000000000000 // 101 
参数1: 00100110000000000000000000000000 // 100 
参数2: 10000000000000000000000000000000 // 1 
说明: 位值相同则填充0,不同则填充1 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 |   
 
 
 
 |