新手小白学JAVA 二进制与Java中的二进制

Posted 程序媛 泡泡

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了新手小白学JAVA 二进制与Java中的二进制相关的知识,希望对你有一定的参考价值。

什么是二进制?

1. 前言

对于任何一种进制—X进制,就表示每一位置上的数运算时都是逢X进一位。 十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,x进制就是逢x进位。
我们常用的有以下几种进制:
Bin 二进制Binary,简写为B,在Java中的前缀表示为0b
Oct 八进制Octal,简写为O,在Java中的前缀表示为0
Des 十进制Decimal,简写为D
Hex 十六进制Hexadecimal,简写为H,在Java中的前缀表示为0x

2. 初识二进制

其实,不同进制的计算方式是相通的:
我们先列一些常用的10进制与2进制的对应关系,大家先来感受一下:

通过这张图,有没有发现一些规律呢?
对于10进制而言:10到100需要乘以十进制的10,1000到10000也需要乘以10
对于2进制而言:每加一个0都需要乘以二进制的2,所以用2的指数来表示。
例如 10000000,1后面有7位,就可以用2的7次方表示。

我们列张图,大家来比较一下十进制乘10和二进制乘2的运算结果:

3. Java中的byte类型

java 中的 byte 类型整数是单字节类型,也就是说,它使用 8 位(bit) 来表示整数。

8 位(bit)能表示的数字:


但是!!!java中byte类型的左侧的一位规定用来表示符号,0表示正数,1表示负数。那么它表示数字的位就只有7位,而不是8位,所以:

java 中 byte 类型正数的表示:

java 中 byte 类型负数的表示:

java 的 byte 类型如何表示负数?最小值-128.符号位是1,其余7位是0,得10000000
那-128+1得-127,表示为10000001,那么可以以此类推,继续执行加1运算加到负数的最大值:11111111,如下图所示:

4. Java中整数类型的最小值与最大值

与 byte 类型相同,short,int 和 long 也是用相同的方式表示整数。
这四种类型的最小值和最大值分别可以这样表示:

4.1 byte(1字节,8位):

2进制 2的指数
最小 10000000 -2^7
最大 01111111 2^7 - 1

4.2 short(2字节,16位):

2进制 2的指数
最小 10000000 00000000 -2^15
最大 01111111 11111111 2^15 - 1

4.3 int(4字节,32位):

2进制 2的指数
最小 10000000 00000000 00000000 00000000 -2^31
最大 01111111 11111111 11111111 11111111 2^31 - 1

4.4 long(8字节,64位):

2进制 2的指数
最小 10000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 -2^63
最大 01111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 2^63 - 1

以上是关于新手小白学JAVA 二进制与Java中的二进制的主要内容,如果未能解决你的问题,请参考以下文章

新手小白学java 编码转换流 OutputStreamWriter InputStreamReader

新手小白Java进阶 什么是进制?

新手小白学JAVA 接口 面向接口开发

新手小白学JAVA 学习路径 知识体系

新手小白学JAVA 抽象类

新手小白学JAVA_IDEA修改编辑与控制台字体大小