|
本帖最后由 小蜗牛 于 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
|
|