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

2019-07-30 18:31:50 +08:00
 lihongjie0209

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

大家的看法是什么

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

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

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

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

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

https://www.v2ex.com/t/587613

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

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

© 2021 V2EX