查看: 634|回复: 3

[C/C++] C/C++中的位运算

[复制链接]

0

技术

9

魅力

1

原创

版主

禁止访问

Rank: 7Rank: 7Rank: 7

积分
7734
人气
176
分享
52

最佳新人活跃会员

发表于 2022-12-27 13:35:08 | 显示全部楼层 |阅读模式
废话前言】
Hi,我回来了
说到做到,今天更新
@YFSafe 恭喜转正!
【按位与】
运算符:&

所谓按位与,非常好理解
两个十进制数,转成二进制数(这是位运算基本条件)后,数位上两个数都为1,则结果为1,反之为0
举几个例子:
   0000000001110010(114)
& 0000001000000010(514)
-----------------------------------
   0000000000000010
结果:2

   00000000011101111111(1919)
& 00000000001100101010(810)
-----------------------------------------
   00000000001100101010
结果:810(这么巧)
很简单吧
【按位或】
运算符:|

这也非常好理解
两个十进制数,转成二进制数后,数位上有一个数为1,结果为1,反之为0
例子:
   0000000001110010(114)
|  0000001000000010(514)
-----------------------------------
   0000001001110010
结果:626

   00000000011101111111(1919)
|  00000000001100101010(810)
-----------------------------------------
   00000000011101111111
结果:1919

【取反】
运算符:~

这个更简单了,数位上是1,取反后为0
例子:
~1010101010100011110100100111110010(11451451890)
-----------------------------------------------------------------------

   0101010101011100001011011000001101

结果:5728417293
【按位异或】
运算符:^
当两个数的二进制只有一个数位为1,则唯一,反之则为0
例子:
    0000000001110010(114)
^  0000001000000010(514)
-----------------------------------
    0000000000000010
结果:2(C中以八进制输出)
【左移/右移】
运算符:<<和>>
将二进制数位向左货向右移
左移例子:
[C] 纯文本查看 复制代码
long x = 11451451890;
x = x << 3; //3是数位,可以改

左移前:
1010101010100011110100100111110010(11451451890)
左移后:
0101010100011110100100111110010000(5712269200)

右移例子:
[C] 纯文本查看 复制代码
long x = 11451451890;
x = x >> 3; 

右移前:
1010101010100011110100100111110010(11451451890)
右移后:
左移前:
0001010101010100011110100100111110(1431431486)
简单吧



评分

参与人数 2经验 +41 魅力 +1 人气 +3 收起 理由
YFSafe + 11 + 3 很给力!
Andy + 30 + 1 赞一个!

查看全部评分

本帖被以下淘专辑推荐:

小菜鸡一枚~
Gitee主页:https://gitee.com/juruoqwq

0

技术

9

魅力

1

原创

版主

禁止访问

Rank: 7Rank: 7Rank: 7

积分
7734
人气
176
分享
52

最佳新人活跃会员

 楼主| 发表于 2022-12-27 18:34:24 | 显示全部楼层
有个地方写错了
按位异或哪里,正确的应该是:
    0000000001110010(114)
^  0000001000000010(514)
-----------------------------------
    0000001001110000(624)
小菜鸡一枚~
Gitee主页:https://gitee.com/juruoqwq

4

技术

17

魅力

6

原创

版主

禁止发言

Rank: 7Rank: 7Rank: 7

积分
5367
人气
208
分享
36

最佳新人活跃会员

发表于 2022-12-28 12:11:40 | 显示全部楼层
优质文章!
我一直无法理解这几个符号,终于懂了.
YF工作室驻x64论坛分部
工作室曾开发的软件:YFSafe安全软件,YFChat在线聊天软件,MBRTools等。
欢迎有能力的你加入我们一起共同进步。请发邮件至yfstudio2021@outlook.com

0

技术

9

魅力

1

原创

版主

禁止访问

Rank: 7Rank: 7Rank: 7

积分
7734
人气
176
分享
52

最佳新人活跃会员

 楼主| 发表于 2022-12-28 12:28:04 | 显示全部楼层
YFSafe 发表于 2022-12-28 12:11
优质文章!
我一直无法理解这几个符号,终于懂了.

感谢支持
小菜鸡一枚~
Gitee主页:https://gitee.com/juruoqwq
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表