最近我在看android源码的时候,发现它里面有很多static final int类型的常量都是使用十六进制来表示的:
所以我想问一下,在代码里,使用十六进制和十进制来表示整数有什么区别?或者说,相对十进制,使用十六进制来表示整数有什么好处?
另外,我还发现,在定义常量的时候,他们并不是随便的拿一个十六进制数来赋值的,它取的值里面一般都会包含1、2、4、8这几个数字,这里面又有什么巧妙之处?
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
个人猜测,是为了让位运算更加直观。Android源码中用到了很多的位运算,相对于10进制,16进制更加直观易懂。
以ViewGroup源码为例:
然后所有以上属性一起用一个int变量mGroupFlags标示,每一位记录一个属性的状态(0或1)
用16进制比较直观 你可以直接心算出来
写成10进制的话,计算哪一位表示哪一个变量会麻烦一些,看起来也很蛋疼