一个 int 值,只能表示一个数值吗?
Posted Danny_姜
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个 int 值,只能表示一个数值吗?相关的知识,希望对你有一定的参考价值。
正常情况下一个 int 就是代表一个数值,或者一种状态。但是Google和Oracle的工程师似乎特别喜欢用1个 int 类型来表示多种状态,源码中到处都能看到这种使用方式。
线程池
ThreadPoolExecutor中的 ctl
定义线程池的运行状态值:
声明用来表示线程池运行状态和线程数量的变量
设置线程池状态和线程个数
获取线程池运行状态和线程个数
Java线程池使用AtomicInteger ctl表示线程池的两种状态:
运行时状态
当前池中线程个数
ctl 高3位表示运行时状态,低29位表示线程个数
Java Class 修饰符
getModifiers()
定义Class的几种修饰符值
获取Class所有的修饰符:
判断Class是否被某一个修饰符修饰:
Java Class 使用一个 int 变量 modifiers 的低16位来表示它的所有修饰符
android View
MeasureSpec
定义状态UNSPECIFIED、EXACTLY、AT_MOST,以及用于过滤的MODE_MASK。
构建MeasureSpec
从MeasureSpec中取值
Android View中的onMeasure方法有2个参数:
int widthMeasureSpec
int heightMeasureSpec
这两个int的高2位表示宽高设置模式,低30位表示宽高实际大小
实践
相亲平台择偶标准
比如实现一个相亲平台,相亲人员需要登记自己的真实情况与择偶要求。主要包含两方面信息:城市地址(只限北上广) + 名下资产。
这种情况就可以用1个int类型的变量来表示这两方面信息:高2位表示城市地址,低30位表示名下资产。
1 定义城市地址状态值:
2 定义城市、资产过滤MASK:
3 构建城市地址与名下资产情况
4 判断城市地址与名下资产情况:
思考题
文末无广告
不知道为什么,文章写到这里我脑子里突然冒出一道题,可以借此题考验自己是否熟悉"位运算"?
如何使用"位运算"实现一个整数的正反数 ?比如:
输入 10,返回 -10
输入 -100,返回 100
输入 0,返回 0
如果你喜欢本文
长按二维码关注
以上是关于一个 int 值,只能表示一个数值吗?的主要内容,如果未能解决你的问题,请参考以下文章
c语言 int的范围不是-32768~32767吗?为啥我输入了大于的数还是成立.
mysql里的float(6.1)表示数值最大只能为6.1吗?