(干货)详解数据存储(上)——进制

前言

在计算机中,数据类型分为整型与浮点型两种类型,而对于这两种类型的存储方式又有哪些异同?
我将分三章,对计算机的数据存储进行详细的介绍;

一、进制数

再详细介绍整型与浮点型的存储形式之前,先预铺垫一些二进制、八进制、十进制与十六进制之间表示与转换的基础。

1、R进制转十进制

R进制转换为十进制数采用权值累加的方法:

例一:将二进制数101.11转换为十进制数
1×22+0×21+1×20+1×2-1+1×2-2=5.75

例二:将八进制数37.24转换为十进制数
3×81+7×80+2×8-1+4×8-2=31.3125

例三:将十六进制数B4.A转换为十进制数
11×161+4×160+10×16-1=180.625

将十进制数转换为R进制数分为两部分: 整数部分采用“除R取余法”,小数部分采用“乘R取整法”;

例一:十进制10转换为二进制
10除2 商 5 余 0
5 除 2 商2 余 1
2 除 2 商1 余 0
1 除 2 商0 余 1
当商为0时为止,此时将余数从高位向低位排,即1010;
注意:整数部分,后得到的余数是高位

例二:十进制0.75转换为二进制
0.75乘2 积1.5,小数部分为0.5 取整为 1
0.5 乘2 积1.0,小数部分为0 取整为 1
当小数部分为0时为止,此时将取整部分从高位向低位排,即0.11;
注意:小数部分,先取整得到的是高位,这一点与整数部分相反

2、进制数的表达

对于R进制来说,其能表达的最大的个位数是R-1,如二进制最大为1,最小为0,十进制最大为9,最小为0……
较为特殊的是十六进制,个位上能对应0~15之间的数,分别为0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F;

3、二进制、八进制、十六进制之间的转换

二进制的权值2i与八进制的权值8i、十六进制的权值16i之间的对应关系为8i=23i,16i=24i,也就是说,每3位二进制数可以表示为1位八进制数,每4位二进制数可以表示为1位十六进制数;

将一个二进制数转换为八进制数所用的方法为“取三合一法”,即以二进制的小数点为分界点,分别向左(整数部分),向右(小数部分)每3位分成一组,接着按组将这3位二进制按权相加,得到的数就是一位8位二进制数。然后,按顺序进行排列,小数点的位置不变,得到的数字就是所求的八进制数。如果取到最高或最低位时无法凑足3位,可以在小数点的最左边(整数部分的最高位)和最右边(小数部分最低位)补0,凑足3位。

将一个八进制数转换为二进制数所用的方法为“取一分三法”,即将一位的八进制数分解成3位的二进制数,将3位二进制按权相加去凑这位八进制数﹐小数点位置照旧。

以此类推,二进制数转换为十六进制数所用的方法为“取四合一法”;十六进制数转换为二进制数所用的方法为“取一分四法”。

例一:将二进制数10111010.11011转换为八进制数
010得到2,111得到7,010得到2,110得到6,11最终得到(272.66)8;

例二:将二进制数10111010.1101转换为十六进制数
1011得到B,1010得到A,1101得到D,最终得到(BA.D)16

例三:将八进制数37.25转换为二进制数
3分为011,7分为111,2分为010,5分为101,最终得到(11111010101)2

例四:将十六进制数5F.3C转换为二进制数
5分为0101,F分为1111,3分为0011,C分为1100,最终得到(0101111.001111)2;

对于八进制和十六进制之间的转换,可以现将其转换为二进制或十进制,然后再转换成所需要的进制数;

(干货)详解数据存储(中)——整型
(干货)详解数据存储(下)——浮点型

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白龙码~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值