栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言位操作

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言位操作

二进制整数:
一个字节8个位
一个二进制数 0 1 0 0 1 0 0 1
位号 7 6 5 4 3 2 1 0
第7位是高位,第0位是低位
一个字节可以存储的数范围是0–255,一共256个值,也可以是 -128–127

八进制:
每个八进制对应3个二进制位
十六进制
每个十六进制位对应4个二进制位,用A标志10,F表示15,大小写不分

位逻辑运算符(~,|,&,^)
常规逻辑运算符(&&,||,!=)

按位取反(~) ~(10010010) —> 01101101
按位与(&) (10010010) & (10101010) ----> (10000010) 两个位都为1运算后位才为1
按位或(|) (10010010) | (10101010) ----> (10111010) 两个位有一个1运算后该位就为1
按位异或(^) (10010010) ^ (10101010) ----> (00111000) 两个位有一个位为1就为1,两个位为1就为0

掩码:
&运算符通常来完成掩码的操作,掩码是为某些位设为1或者0的位组合
flag = 10010110
mask = 00000010
flag &= mask;
flag = 00000010
这个语句将会使flag除了第1位其余位全部为0

打开位,使某位为1,通常与 | 一起使用

flag = 10010100
mask = 00000010
flag |= mask;
flag = 10010110  使第1位为1,其余位不变

关闭位,使某位为0

~mask = 11111101
flag = flag & ~mask = 10010100
1&1=1,1&0=0,上述操作关闭了第1位

转置位,使1->0,0->1;
1^0=1;
1^1=0;

flag = 10010100
mask = 10010100
flag ^= mask;
flag = 00000000 // 使flag的打开位全部关闭

查看某位的值

flag = 10010100;  
mask = 10000000;
if((falg & mask)== mask);
如果上述成立则位7位1,不成立则为0

左移 <<
(10001010) << 2;//左移两位,移除的2个高位舍弃,低位补0
(00101000)

flag = 10001010;
flag <<= 2;
flag = 00101000;

右移 >>
(10001010) >> 2;//右移两位,移除的2个低位舍弃,高位补0
(00100010)

flag = 10001010;
flag >>= 2;
flag = 00100010;

移位运算符
number << n; number乘2的n次幂
number >> n; number除以2的n次幂(number非负)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/766787.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号