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

1.十六进制好处

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

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

2.十六进制用法

以ViewGroup源码为例:static final int FLAG_CLIP_CHILDREN = 0x1;

private static final int FLAG_CLIP_TO_PADDING = 0x2;

static final int FLAG_INVALIDATE_REQUIRED  = 0x4;

private static final int FLAG_RUN_ANIMATION = 0x8;

static final int FLAG_ANIMATION_DONE = 0x10;

private static final int FLAG_PADDING_NOT_NULL = 0x20;

private static final int FLAG_ANIMATION_CACHE = 0x40;

static final int FLAG_OPTIMIZE_INVALIDATE = 0x80;

static final int FLAG_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进制的话,计算哪一位表示哪一个变量会麻烦。

以上就是java中int使用十六进制的方法,相信经过上方的对比,大家已经发现在运算上十六进制的计算速度更快,代码层面也比较清晰和明确。

java int 十六进制_java中int使用十六进制相关推荐

  1. java byte转int原理_java中int与byte数组互转代码详细分析

    在java中,可能会遇到将int转成byte[]数组,或者将byte[]数组转成int的情况.下面我们来思考下怎么实现? 首先,分析int在java内存中的存储格式. 众所周知,int类型在内存中占4 ...

  2. java int长度_java 中int 的范围

    展开全部 int的取值范围为: -2^31--2^31-1,即-2147483648--2147483647 1.对于正数来说,它的补码就是它本身. 2.对于负数62616964757a6869646 ...

  3. java int byte数组_Java 中int与byte数组转换详解

    1.与运算符的理解(&): 参加运算的两个数据,按二进位进行"与"运算.如果两个相应的二进位都为1,则该位的结果值为1,否则为0.即 0&0=0:0&1=0 ...

  4. java中三种转string的方法_java中int,char,string三种类型的相互转换

    如何将字串 String 转换成整数 int? int i = Integer.valueOf(my_str).intValue(); int i=Integer.parseInt(str); 如何将 ...

  5. java中 int 比较_java中Integer与int的种种比较你知道多少?

    如果面试官问Integer与int的区别:估计大多数人只会说道两点,Ingeter是int的包装类,int的初值为0,Ingeter的初值为null.但是如果面试官再问一下Integer i = 1; ...

  6. java的double是什么意思_java中int和double有什么区别

    java中int和double有什么区别 区别如下: 1.int数据类型是32位,double数据类型是64位: 2.int数据类型的默认值是0,double数据类型的默认值是0.0d: 3.整型变量 ...

  7. java int值的范围_java中int的取值范围是多少

    java中int的取值范围是多少 发布时间:2020-06-26 14:53:13 来源:亿速云 阅读:159 作者:Leah 今天就跟大家聊聊有关java中int的取值范围,可能很多人都不太了解,为 ...

  8. java int位运算_java中int的表示方法,位运算的解析

    随着时代的不断发展,越来越多的人开始投入到java的学习当中来.今天就来为大家介绍java中int的表示方法以及位运算的内容有哪些一起来看看吧. 首先我们需要知道的是,在java中,int是使用32位 ...

  9. java合并整形_java中2个int合并成一个long

    延续32位时代的逻辑通常只会在32位整数中取出高16位和低16位的短整数(short)或相反的合并操作,如c/c++语系中loword和hiword.现在64位的cpu普及到已是标配了,所以这种经典的 ...

最新文章

  1. 10个必会的 PyCharm 技巧
  2. poj2017——Speed Limit
  3. SSL与TLS的区别
  4. GitHub 大热!也许会成为你心中的OCR开源工具NO1!
  5. ORA-25153: Temporary Tablespace is Empty
  6. 管道无损检测python_武汉哪里有便携式X射线探伤机使用方法欢迎咨询
  7. 相似度和相异度、常用距离度量、余弦相似度
  8. 隐藏网页文件的后缀(IIS测试通过)!
  9. 数据库中字段类型Number(n,m)大概说明
  10. Android实现支持缩放平移图片
  11. [golang]如何看懂调用堆栈
  12. python水仙花数的编程讲解_《scratch编程+数学》课程:找寻水仙花数
  13. 41. PHP MySQL 连接数据库
  14. php 查看使用多少内存
  15. 基于OpenCV实现二值图细化,骨骼化并求出端点和交叉点
  16. FZU Problem 2198 快来快来数一数(矩阵快速幂 卡常数 +优化)
  17. 拔剑金三银四:大厂面试流程、面试套路分享!你准备好“进厂拧螺丝”了吗?
  18. SpringBoot+H5微信登陆(网页)
  19. Task ‘bulid‘ not found in root project ‘cas‘. Some candidates are: ‘build‘.
  20. 软件测试输入准则,单元测试准则

热门文章

  1. EtherCAT DC (学习笔记)
  2. 【题解】CF808G Anthem of Berland
  3. python字典嵌套字典构造_浅析python 字典嵌套
  4. 编译工程——词法分析
  5. 保姆级AS400 CL介绍与应用(硬核)
  6. 单片机差分升级算法(STM32,M0,M3,M4等芯片都适用)
  7. mysql 查询字段排名_mysql:查询排名
  8. SaaS/大数据2019十大新闻出炉:我们不是“孤胆英雄”!
  9. 第一个ASP.net的CRED(创建读取编辑删除)页面
  10. 房地产价值大数据分析报告赋能拍卖公司2.0