进制转换(二进制,八进制,十进制)
前言
对于整数,java语言有三种表现形式。
- 十进制,最常见,生活中使用的就是,范围:0-9,规则: 满10进1 。如“23”
- 八进制 ,范围:0-7 规则: 满8进1 用0开头。如“ “023”
- 十六进制,0-9,A-F(A->10,B->11,C->12,D->13,E->14,F->15) 规则:满16进1 用0x开头。
数据的表示形式
计数方式,数据的表现形式,以及进制的由来
在内存中是使用“1”和“0”来表示数据的。
基本规则:8位来表示一个最小的单位,表示一个字节。(一个字节是8个二进制位)
表示数据形式:采用101010的不同组合,来代替不同的字母,形成一张表-编码表,叫ASCII表(映射对应)英文字母。
进制的由来:二进制表示的数据长度太长,为了让进制的表现形式变短,出现了八进制。
二进制和十进制的转换
- 十进制转二进制
原理:对十进制数进行除2运算,
比如:求十进制数6的二进制表现形式。
解释:将余数从下往上排列,便是6的二进制数的表现形式。 - 二进制转十进制
原理:二进制数×2的次幂的过程
解释:次幂的第一位是0,然后以此往左推,2的1次幂,2的2次幂,2的3次幂……..
因为二进制数不是1 就是0 ,只要确定某一位上是否为1,则将其对应的2的x次幂相加即可。
当8位都是1,则十进制为255,也就是以十进制为表现形式的一个字节最大是255.
应用的例子:ip地址。每段都是用一个字节表示,所以ip最大数是255.
二进制的运算规则
原理:满2进1
5的二进制是101
4的二进制是100
其他进制转换
- 二进制转十六进制
说明:四个二进制代表一位来计算十六进制。
原理:四个二进制最大值是15,满16进1 - 二进制转八进制
说明:三个二进制位代表一位来计算八进制,缺一位在最左侧拿0前补。
原理:三个二进制最大值是7,满8进1 - 二进制转换成八进制和十六进制,只是将每一位所得字符拼接,而不是相加,要与十进制区分开。
-结果:十进制90的二进制为01011010
十进制90的十六进制是0x5A
十进制90的八进制是132 - 由于进制间,转换成二进制换算比较简单,则此次只介绍相互转换成二进制的转换过程。
负数的二进制表现形式
整数在内存里,是占四个字节,一个字节是8位,也就是32位。
结论:负数的二进制表现形式是整数去反再加一的过程。