揭秘四大进制

进制主要分为以下四点:二进制、八进制、十进制、十六进制

以下我们来对上面的四个进制一 一讲解

二进制(基数为二)

Java中的二进制的整数是以0b或0B开头,计算机中的数据都是以二进制来进行保存的。只有0、1这两个值。
进位规则是“逢二进一”,借位规则是“借一当二”。

二进制有三种表现形式:分别是   原码、补码、反码

计算机中信息的存储单位

位(Bit):表示一个二进制数0或者是1,是计算机存储信息最基本的单位。

字节(Byte):一个字节是由8位组成的,就是用来处理8个二进制的数字。

八进制(基数为八)

Java中的八进制的整数是以0开头。现在的计算机系统中已经很少会用到八进制了。
二进制和八进制的关系图如下:
二进制和八进制的关系图

十进制(基数为十)

像我们日常生活中用到的数字就是十进制的,比如一些11、105、2000等这些
进位规则:满十进一,满二十进二,以此类推……

十六进制(基数为十六)

Java中的十六进制的整数是以0X或者0x开头,十六进制是一种逢16进1的进位制。一般用数字0到9和字母A到F(或a-f)表示,其中:A-F表示10~15,这些称作十六进制数字。
二进制和十六进制的关系图如下:
二进制和十六进制的关系图

进制转换详解如下:

在学进制转换前,先思考下为什么会存在进制转换这个过程?

答:因为计算机是以二进制的形式来进制存储

1、十进制互转二进制

(1)十进制转二进制
此处列举一个byte类型数字为10和-10的数字,下图则是十进制数利用“短除法”来获取二进制数

在这里插入图片描述

符号位: 0 代表正数,1 代表负数

如果是利用短除法则可以套用以下公式

整数:除2取 "余", "逆" 序排列
小数:除2取 "整", "顺" 序排列
(2)二进制转十进制
如果我们有一个二进制数那怎么将二进制数转换为十进制呢?
我们可以采用“加权系数展开式”如下:
比如我有一串二进制数:00100011

在这里插入图片描述
则二进制转十进制的结果为 35

如果说有小数点,比如 35.213之类的,2的-1次方则是小数点的第一位 比如 35.213的第一位小数是2
在这里插入图片描述
上图的向下箭头的结果是2的n次方的结果 在乘以二进制数,则可以迅速的得出十进制数

2、二进制互转八进制

如图:
在这里插入图片描述
此处再次使用该图,是为了方便进制转换

(1)二进制转八进制
 二进制数 1000101001 ---> 八进制 按三个数字分组,从右到左 结果为 1_000_101_001 此时不够三位的一组,用0进行补位
结果为 001_000_101_001 ---> 八进制 1 0 5 1 

除了使用对照表之外,还可以用短除法
(2)八进制转二进制
八进制 6315 ---> 6=110,3=011,1=001,5=101 ---> 二进制 110_011_001_101
只要对应上面的表即可快速在二进制和八进制之间转换

3、二进制互转十六进制

如图:
在这里插入图片描述

(1)二进制转换十六进制
二进制 01001010011101110011 ---> 二进制分组 0100_1010_0111_0111_0011 ---> 十六进制 4 A 7 7 3
(2)十六进制转换二进制
十六进制 56A6F5E ---> 二进制分组 0101_0110_1010_0110_1111_0101_1110 

4、八进制互转十进制

(1)八进制转十进制
使用“加权系数展开式”来转换 
八进制:173
十进制: ?

在这里插入图片描述

八进制:173
十进制:123
(2)十进制转八进制
使用“短除法”来转换
十进制:123 --->  八进制: ?

在这里插入图片描述

十进制:123 --->	八进制:173

大家可以去算算173和123的二进制和十六进制,结果是一样的

5、十进制互转十六进制

(1)十进制转十六进制
使用“短除法”来转换

十进制:27 --->	十六进制:?

在这里插入图片描述
十进制:27 —> 十六进制:1B(11)

(2)十六进制转十进制
使用“加权系数展开式”来转换 

十六进制:1B(11)--->   十进制:?

在这里插入图片描述

十六进制:1B(11)--->  十进制:27

大家可以去算算27和1B的二进制和八进制,结果是一样的

6、八进制互转十六进制

八转十六或者十六转八,都没有一次性完成的方法,但有两种另外的方式
(1)先将八进制转换成二进制,在将二进制转换成十六进制  或  先将十六进制转换成二进制,在将二进制转换成八进制
(2)先将八进制转换成十进制,在将十进制转换成十六进制  或  先将十六进制转换成十进制,在将十进制转换成八进制

使用哪一种都是可行的,(我自己比较喜欢第一种方式)

在这里插入图片描述

结尾

根据以上结论得出结果:
	1、二进制在转换过程中是通用的
	2、如果计算过程中用的是 短除法 则可以套用以下公式
		(1)整数:除2取 "余", "逆" 序排列
		(2)小数:除2取 "整", "顺" 序排列
	3、任何进制只要是转换成二进制,就可以使用 短除法 或者 直接找关系图对应即可
	4、八进制和十六进制的转换是不能一次性的,只能分两次,分别为:
		(1)先将八进制转换成二进制,在将二进制转换成十六进制  或  先将十六进制转换成二进制,在将二进制转换成八进制
		(2)先将八进制转换成十进制,在将十进制转换成十六进制  或  先将十六进制转换成十进制,在将十进制转换成八进制
	5、八、十、十六  进制 转换方法
		八进制转十进制    使用“加权系数展开式”来转换 
	    十进制转八进制    使用“短除法”来转换
		
 		十进制转十六进制  使用“短除法”来转换
 		十六进制转十进制 	使用“加权系数展开式”来转换 

如果对此文章有疑问 可在评论区与我讨论,如有错误的地方,请在评论区给我留言,谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值