设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2429|回复: 8
打印 上一主题 下一主题

[胡扯] 喔原来位运算可以这么玩

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1939
在线时间
403 小时
注册时间
2015-8-30
帖子
395
跳转到指定楼层
1
发表于 2018-9-1 11:57:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
比如说咱有个Klass类,而Klass对象有一些bool型的属性,比如a,b,c,d之类的
我以前会这么写
RUBY 代码复制
  1. class Klass
  2.   attr_accessor :a, :b, :c, :d
  3.   def initialize
  4.     @a = false
  5.     @b = false
  6.     @c = false
  7.     @d = false
  8.   end
  9. end
后来我发现了一种很神奇的写法……
RUBY 代码复制
  1. class Klass
  2.   FLAG_A = 0b0001
  3.   FLAG_B = 0b0010
  4.   FLAG_C = 0b0100
  5.   FLAG_D = 0b1000
  6.   def initialize
  7.     @flags = 0b0000
  8.   end
  9.   def set_flag(flag, bool)
  10.     bool ? @flags |= flag : @flags &= ~flag
  11.   end
  12.   def get_flag(flag)
  13.     @flags & flag == flag
  14.   end
  15. end
这难道就是位运算的真谛?
小仙女一枚~

Lv4.逐梦者

梦石
0
星屑
5039
在线时间
1780 小时
注册时间
2012-7-3
帖子
1799

开拓者

2
发表于 2018-9-1 12:16:58 | 只看该作者
当初做蓝牙板子,多任务就是用的这一招,拿当前task ID按位与找相关的方法

然后我是做上位机的于是这部分就一点儿没听
反正用的东西比较主流面向搜索引擎编程就行了,当时做quartus老师一点不讲啥也不知道什么也搜不出来,硬着头皮上结果就是做不出来,还不如直接抄呢
Project Ktr进行中:
   
------------------
SRPG开发之六-天气与地形互动
→→围观
→→→去Lofter围观
------------------
离经叛道的扯淡者/伪独立游戏爱好者/Decade Studio(?)/造轮子真TM开心呀
回复 支持 反对

使用道具 举报

Lv3.寻梦者

孤独守望

梦石
0
星屑
3132
在线时间
1535 小时
注册时间
2006-10-16
帖子
4321

开拓者贵宾

3
发表于 2018-9-1 12:34:37 | 只看该作者
来人,把vector<bool>拉出来鞭尸
菩提本非树,明镜本非台。回头自望路漫漫。不求姻缘,但求再见。
本来无一物,何处惹尘埃。风打浪吹雨不来。荒庭遍野,扶摇难接。
不知道多久更新一次的博客
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
124
在线时间
15 小时
注册时间
2008-1-25
帖子
833
4
发表于 2018-9-1 18:02:12 | 只看该作者
既然用ruby了,就不要这么锱铢必较了,多用几个变量何必呢
论坛还活着真是太好了
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv2.观梦者 (禁止发言)

梦石
0
星屑
653
在线时间
3774 小时
注册时间
2011-2-26
帖子
1839

开拓者

5
发表于 2018-9-3 09:48:49 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1803
在线时间
133 小时
注册时间
2013-10-6
帖子
193
6
发表于 2018-9-3 21:19:16 | 只看该作者
把整数当作flag用不是正常操作吗

点评

C写得多的话还是很常见的  发表于 2018-9-3 21:30
我只是由于一直学Ruby,没接触过这种用法  发表于 2018-9-3 21:21
←你看到一只经常潜水的萌新。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-15 19:03

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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