什么是二进制?
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
大概了解了二进制后,我们来学习一下常用进制之间是怎么转换的吧!
|