Java基础系列文章
Java基础(十):关键字static、代码块、关键字final
Java基础(十八):java比较器、系统相关类、数学相关类
一、不同进制的表示方式
- 所有数字在计算机底层都以二进制形式存在
- 对于整数,有四种表示方式
- 二进制(binary):0,1 ,满2进1,以
0b
或0B
开头 - 十进制(decimal):0-9 ,满10进1
- 八进制(octal):0-7 ,满8进1,以数字
0
开头表示 - 十六进制(hex):0-9及A-F,满16进1,以
0x
或0X
开头表示。此处的A-F不区分大小写。如:0x21AF +1= 0X21B0
- 二进制(binary):0,1 ,满2进1,以
十进制 | 二进制 | 八进制 | 十六进制 |
---|---|---|---|
0 | 0 | 0 | 0 |
1 | 1 | 1 | 1 |
2 | 10 | 2 | 2 |
3 | 11 | 3 | 3 |
4 | 100 | 4 | 4 |
5 | 101 | 5 | 5 |
6 | 110 | 6 | 6 |
7 | 111 | 7 | 7 |
8 | 1000 | 10 | 8 |
9 | 1001 | 11 | 9 |
10 | 1010 | 12 | a或A |
11 | 1011 | 13 | b或B |
12 | 1100 | 14 | c或C |
13 | 1101 | 15 | d或D |
14 | 1110 | 16 | e或E |
15 | 1111 | 17 | f或F |
16 | 10000 | 20 | 10 |
二、二进制
- 计算机数据的存储使用二进制补码形式存储,并且最高位是符号位
- 正数:
最高位是0
- 负数:
最高位是1
- 正数:
- 规 定
- 正数的补码与反码、原码一样,称为
三码合一
- 负数的补码与反码、原码不一样:
- 负数的
原码
:把十进制转为二进制,然后最高位设置为1 - 负数的
反码
:在原码的基础上,最高位不变,其余位取反(0变1,1变0) - 负数的
补码
:反码+1
- 负数的
- 正数的补码与反码、原码一样,称为
为什么要使用原码、反码、补码表示形式呢?
- 主要要解决的问题就是负数的表示
- 假设我们有正数0000 1111,我们如何表示其相反数呢?
- 一般我们的思路是,找一个数,跟它相加的结果等于0,但是我们发现,要找出一个与它相加后结果等于0的数还是要略加思考一下的(因为要计算进位)
- 所以,为何不找出一个与它相加后结果是1111 1111的数,然后该数+1即是我们所要的答案啦
- 于是,很容易的,0000 1111 + 1111 0000 + 1 = 1111 1111 1111 1111 + 1 = (1)0000 0000 (超过最高位数的1舍去)
- 一目了然,1111 0001 就是我们想要的答案了
- 那么我们是怎么得到这个相反数的呢?
- 首先,找出一个数与它加起来结果是全1的,这个数便是它的反码
- 然后这个数再加1,这便是它的相反数了,也是我们说的补码
- 我们检验一下0的情况,0000 + 1111 + 1 =(1)0000,其中1111 + 1 = (1)0000 = 0000,即+0和-0的二进制表示均为0000
三、进制之间的转换
二进制 转 十进制
十进制 转 二进制
二进制与八进制转换
四、byte的取值范围
- byte 在计算机中是8位;第一位为符号位。0表示正数,1表示为负数,其余的7位表示具体的值
- 数值在计算机内存中的存储是补码的方式
- 正数最大为0111 1111,十进制表示形式为127
- -0的原码是1000 0000,反码是 1111 1111,补码是 10000 0000 ,因为byte只识别8位字节,所以补码是 0000 0000
- +0的原码是 0000 0000 ,反码补码都是其本身,还是0000 0000
- 对于0来说,底层存储补码,就只有0000 0000,把-0和+0都包括了
原码 -1 是 1000 0001 , -127是 1111 1111
反码 是 1111 1110 , 是 1000 0000
补码 是 1111 1111 , 是 1000 0001
即补码 1111 1111 到补码 1000 0001 表示 -1 到 -127
- 负数的补码还有一个空缺,1000 0000,这个就作为了-128的补码
- -128 + 1 = -127也就是 1000 0000 + 0000 0001 = 1000 0001,运算起来也合理
- -128只有补码,没有原码和反码(因为推算回去原码是0000 0000)
-128在byte类型中怎么存储?
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/148573.html