java中int使用十六进制

在int类型中,进制的使用有十进制和十六进制的方法。在选择上很多人都有所困惑,不知道哪一种进制更好用。就位运算更加直观的表现出来而言,还是推荐使用十六进制。下面我们就十六进制的好处进行分析,同时以十六进制的用法为例,帮助大家在int中体会十六进制的用法。

1.十六进制好处

(1)方便看出位置对应的共同特征,如你截图中的MODE_WORLD_READABLE和 MODE_WORLD_WRITABLE的前三位都是0(十六进制),如果使用十进制的数字,这样的表示并不明显

(2)可以快速一一对应于二进制,方便进行bit mask运算,如移位,或者OR来推算得出一个组合的标识flag。

2.十六进制用法

ViewGroup源码为例:

staticfinalintFLAG_CLIP_CHILDREN=0x1;
privatestaticfinalintFLAG_CLIP_TO_PADDING=0x2;
staticfinalintFLAG_INVALIDATE_REQUIRED=0x4;
privatestaticfinalintFLAG_RUN_ANIMATION=0x8;
staticfinalintFLAG_ANIMATION_DONE=0x10;
privatestaticfinalintFLAG_PADDING_NOT_NULL=0x20;
privatestaticfinalintFLAG_ANIMATION_CACHE=0x40;
staticfinalintFLAG_OPTIMIZE_INVALIDATE=0x80;
staticfinalintFLAG_CLEAR_TRANSFORMATION=0x100;

然后所有以上属性一起用一个int变量mGroupFlags标示,每一位记录一个属性的状态(0或1)

16进制比较直观 可以直接心算出来

0位表示FLAG_CLIP_CHILDREN

1位表示FLAG_CLIP_TO_PADDING

2位表示FLAG_INVALIDATE_REQUIRED

3位表示FLAG_RUN_ANIMATION

4位表示FLAG_ANIMATION_DONE

….

写成10进制的话,计算哪一位表示哪一个变量会麻烦。

原文来自:https://www.py.cn

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容