c语言位运算_位运算 | 课程学习攻略之C语言程序设计第四期

如何稳重的耍帅

唉,同学,别走啊,看你年纪轻轻的就有一身横练的筋骨,简直百年一见的编程奇才啊,这本《位运算秘籍》是无价之宝。我看你点了进来,就是有缘,那就此赠与你。

Part 1

见龙在田

其实所有语言里面都有位运算,&,|,^,~,<>,>>>,但是大家往往直接一扫而过,很少在自己的程序中运用它,首先大家要了解这些运算符代表了什么逻辑。

1. &-'与'

2. |-'或'

3. ^-'异或'

4. ~-'非'

5. << - '向左移位'

6. >> - '向右移位'

森么,你听不懂上面的术语,emm欢迎百度布尔代数,大概也就5分钟的学习曲线吧。

Part 2

见龙在天

森么,你不高兴百度,那也木有关系啦。记住下面的一些奇技淫巧也是一样的。

thinking makes talents, practice makes perfect

1.判断奇偶数
常用写法:(a%2 !=0 )
位运算:if(a&1){奇数}
原理:任何偶数二进制右起第一位数必定0,而奇数必定是1,而1的二进制就是1,所以可以用这个判断。

2.交换变量
常用写法: swap函数
位运算: a ^=b, b^=a, a^=b
原理:第一步,a = a^b, 第二步,b=b^a,也就是b=b^a^b,也就是b=a^0,此处换值。第三步,a = a^b, 也就是a=a^b^a,也就是b
逆天写法:a = [a=b, b][0]

3.向下取整
常用写法:Math.floor()
位运算: x|0

4.乘以2的n次方
常用写法:Math.power()
位运算: x << n

Part 3

亢龙有悔——学长的小课堂

a6197df503e45409630e30333f7ca72a.gif

学弟:学长,怪不得你写的代码奇奇怪怪的,我都看不懂。

学长:啊,其实初学者在代码中位运算尽量配合注释使用哦,不然一周之后可能连自己的代码都看不懂ORZ

学弟:那位运算除了耍帅外还有别的作用吗?

学长:其实位运算是和汇编指令一一对应的,执行速度一般会比其他的写法要快很多,在追求性能的时候很有用!

93bcf8f645f7a33d390b4dadf4342e6d.png

编辑:宋钰清

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值