大家工作中对位操作的使用是什么态度

2019 年 7 月 30 日
 lihongjie0209

有些时候确实挺方便的, 但是不那么"直观"(对于团队中的其他人)

大家的看法是什么

8153 次点击
所在节点    程序员
76 条回复
jaskle
2019 年 7 月 30 日
非密集计算用位操作我决定扇死他,我现在翻翻以前写的 c 代码都想扇自己,为了省内存各种可读性的降低,后期维护加功能麻烦的一批!
invoke
2019 年 7 月 30 日
写的时候觉得挺牛逼的。

维护的时候觉得挺傻逼的。
jaskle
2019 年 7 月 30 日
以前害怕 int 占用大,布尔型用 uchar 的 0 和 1,最后知道真相的我眼泪掉下来
des
2019 年 7 月 30 日
一般封装了再使用,也还行
qq976739120
2019 年 7 月 30 日
出了刷题,我还没在工作中使用过位运算,业务代码里用位运算要么被实习生崇拜,要么被队友喷
zqx
2019 年 7 月 30 日
比如 !!~a.indexOf(b)算吗
lihongjie0209
2019 年 7 月 30 日
@qq976739120 #5 最近也是刷题的时候用的比较多, 项目上刚好有个场景可以使用就打算上, 结果领导说"不直观", 看来确实如此, 少用为好
across
2019 年 7 月 30 日
封装成一个 enum + class····
不然确实不直观。
lihongjie0209
2019 年 7 月 30 日
@across #8 嗯 谢谢建议
ljzxloaf
2019 年 7 月 30 日
Bitset
lihongjie0209
2019 年 7 月 30 日
@ljzxloaf #10 一般情况下直接用 int/long, 除非你的状态超过了 32/64 种
loginbygoogle
2019 年 7 月 30 日
能不用就不用
kx5d62Jn1J9MjoXP
2019 年 7 月 30 日
现实中没见过谁用的,只有 Android 源码里面会用
zartouch
2019 年 7 月 30 日
我们用的很多

主要是数据量大 ( 100G - 200G jvm heap ), 可以省内存。
二是系统要求延迟尽可能低,所以很多操作时间复杂度要尽量优化。

除非系统对性能没有要求否则我很难想象不需要位操作。
lihongjie0209
2019 年 7 月 30 日
@zartouch #14 可读性和性能之间的权衡
mason961125
2019 年 7 月 30 日
嵌入式 /单片机 各种通信协议不用位运算麻烦死你。(微笑
LeeSeoung
2019 年 7 月 30 日
如果是变动不大 要求性能高的,特别是算法实现的 用位操作是非常合适的。。如果是普通业务功能,拖出去打~
maichael
2019 年 7 月 30 日
除非必要,能不用就用。
lihongjie0209
2019 年 7 月 30 日
@mason961125 #16 毕竟比较底层
q397064399
2019 年 7 月 30 日
过早优化是万恶之源

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://study.congcong.us/t/587613

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX