递归火山软件开发平台

标题: 【文档教程】位运算 [打印本页]

作者: 小蜗牛    时间: 7 天前
标题: 【文档教程】位运算
本帖最后由 小蜗牛 于 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























作者: 2oon    时间: 7 天前
谢谢分享!涨知识了
作者: 2767944492    时间: 7 天前
感谢科普




欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4