1、在写代码的过程中,偶尔使用到了
Integer.highestOneBit(i)
这个函数调用。使用的第一感觉就是这个函数是干什么用的,通过查看文档得知,这个函数的作用是取 i 这个数的二进制形式最左边的最高一位且高位后面全部补零,最后返回int型的结果。
首先来补充一点背景知识。
1、在计算机系统中,数值一律使用补码来表示和存储。主要原因是使用补码可以将符号位和其它位统一处理;同时,减法也可按照加法来处理。另 外, 两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。
- 补码与原码的转换过程几乎相同。
- 数值的补码表示(分两种)
- 正数的补码:与原码相同
- 负数的补码:符号位位1,其余位位该数绝对值的原码按位取反;然后整个数加1
- 已知一个数的补码,求原码的操作分为两种情况
- 如果补码的符号位“0”,表示是一个正数,所以补码就是该数的原码