
位运算
ScarletMeCarzy
这个作者很懒,什么都没留下…
展开
-
位左移与 iota 计数配合(Go语言)
自增长 在 golang 中,一个方便的习惯就是使用 iota 标示符,它简化了常量用于增长数字的定义,给以上相同的值以准确的分类。 const ( CategoryBooks = iota // 0 CategoryHealth // 1 CategoryClothing // 2 ) 位左移常见实现存储单位的用例 使用位左移与 iota 计数配合可优雅地实现存储单位的常量枚举: type ByteSize float64 const ( _原创 2020-06-01 16:26:05 · 323 阅读 · 0 评论 -
位运算-老鼠试毒
Q:老鼠试毒 有1000瓶水,其中有一瓶有毒,小白鼠只要尝一点带毒的水24小时后就会死亡,问至少要多少只小白鼠才能在24小时内鉴别出哪瓶水有毒? A: 我们先将问题简化一下:假设只有8瓶水,其中1瓶有毒。 将该矩阵转置,得: 依上述场景,取4只容器,转置后的矩阵数列配组合溶液: 取数位上为1的水,放入相应的容器,即: 第一杯:只包含8号水 第二杯:包含4、5、6、7号水 第三杯:包含2、3、6、7号水 第四杯:包含1、3、5、7号水 取4只老鼠,编号1、2、3、4,分别喝下第一杯...第四原创 2020-05-16 13:24:24 · 578 阅读 · 0 评论 -
利用子网掩码和位运算区分IP地址类型
根据RFC950定义,子网掩码是一个32位的2进制数, 其对应网络地址的所有位都置为1,对应于主机地址的所有位都置为0。 子网掩码的设定必须遵循一定的规则。与二进制IP地址相同,子网掩码由1和0组成,且1和0分别连续。子网掩码的长度也是32位,左边是网络位,用二进制数字“1”表示,1的数目等于网络位的长度;右边是主机位,用二进制数字“0”表示,0的数目等于主机位的长度。这样做的目的是为了让掩码与IP地址做按位与运算时用0遮住原主机数,而不改变原网络段数字,而且很容易通过0的位数确定子网的主机数(2的主机位原创 2020-05-16 10:03:46 · 1728 阅读 · 0 评论