(转)二进制实战技巧

转载:https://blog.csdn.net/lirenzuo/article/details/79052523

判断一个数是否是2的幂次方的方法

func isPowerOfTwo(val int) bool {
  return val & (val -1) == 0
}

如果一个数是2的n次方,那么这个数用二进制表示时其最高位为1,其余位为0,(val-1)和val都错开了0和1,那么&一定是0。

如果该数是无符号整数,也可以使用:

func isPowerOfTwo(val int) bool {
  return val & (-val) == val 
}

扩展下,如何判断一个无符号数是2的n次方-1

func isPowerOfTwo(val int) bool {
  return  (val & (val+1)) == 0
}

操作位代表类型

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 8,906评论 0 2
  • 这周经历了一次过山车的人生,虽然心情至始至终都还可以,也没有为自己的愚蠢特别沮丧和难过,我再不想要这些无谓的情绪,...
    苏苏日记阅读 1,220评论 1 0
  • R:《活在爱中的秘诀》,(美)黄维仁著,中国轻工业出版社,2015.03。拆页:P62-63 I:常常说人生中重要...
    悦恩haiyan阅读 2,755评论 1 1
  • 晚上陪女儿读《中国寓言故事》,帮女儿简单概括: 《揠苗助长》有个宋国人嫌自己庄稼长得慢,就将禾苗一棵棵拔高。他回到...
    代春丽阅读 2,241评论 0 0
  • Céline,也许很多人对它的了解最初就是那一张“笑脸”。而自己恰恰一直对这张脸不是太心仪! ...
    Chonglim阅读 4,351评论 8 6

友情链接更多精彩内容