进制及其转换

本文详细解释了计算机选择二进制作为指令和数据存储的原因,阐述了二进制的特性、进制的意义以及进制间的转换方法。重点介绍了二进制在计算机中的应用优势及与十进制的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为什么计算机使用二进制

计算机是用二进制作为指令、数据存储的。之所以使用二进制,是因为构造计算机的电子元器件能比较方便的模拟1和0两个信号。比如我们要存储一个数字,我们称它为number,用十进制表示为521(五百二十一),而用二进制表示为1000001001,如果此时需要你来设计一个东西,来存储这些数据,应该怎么做呢?

对于十进制的数,521,因为每一位上可能出现的数字是0-9十个不同的符号,那么我们需要一个可以记录十个不同状态的东西,或者办法,假设这个玩意是A,那么存储521这个十进制数就需要AAA三个并列在一起就完成了,而如果使用二进制存储,我们只需要一个可以记录两种状态的东西就完事了,在如今的电子元件的物理背景下实在是太好找了,比如通电断电,高电压低电压等等。

显然实现记录10种状态的元器件,方法的成本实在是太高昂了,而且非常容易出错,如果有一点干扰导致记录的状态不正确有偏差,在读取的时候出错,那么影响是非常巨大的,而记录两种状态的成本就非常的低,而且非常稳定,不容易出错,因此,计算机中使用二进制作为基础也就被保留了下来。

进制的意义

首先要说一个“位”的概念,数学意义上的“位”,就是表示数字出现的位置。比如521这个十进制数,从右往左,5在第三位(百位),2在第二位(十位),1在第一位(个位)。而计算机中的“位(bit)”则特别的指二进制位,靠最左侧的称为最高位,最右侧的是最低位。

那么进制的意义,对于n进制来说,就是符号表中只有[0,n−1][0, n-1][0,n1]这些元素,当出现n的时候,需要向上进位。比如十进制,只有[0,9][0, 9][0,9]这些元素,当前数字为9,如果再给它加1,那么它就需要进位,变成10。而对于二进制来说,只能出现[0,1][0,1][0,1]这两个元素,现在写出一个二进制数的数列,不断自增1,那么就是这样的。{0,1,10,11,100,101,110,111,1000,...} \{ 0,1,10,11,100,101,110,111,1000,...\}{0,1,10,11,100,101,110,111,1000,...}

这里会出现一个问题,因为没有什么硬件设备的存储范围是无限的,那么在有限的存储位数下,不断的进位,总会出现进位超出范围的情况,比如只给定3位的存储,那么一个整数最大最大为111(2)111_{(2)}111(2),因为再进位,就会变成000(2)000_{(2)}000(2)了。因此,在有限的存储位数下,任何长度的数据都是有表数范围(精度)的。

进制间的转换

进制之间的转换通常分为两种:
(1)n进制转10进制
(2)10进制转n进制

先说第二种,10进制转换到n进制,采用短除法取余数的办法来做。
比如给定数字725(10)725_{(10)}725(10),要求转换为8进制数。不知道如何用Tex表示短除法,就用下面形式了。
CAB...DC\frac{A}{B}...DCBA...D
意义为:C∗B+D=AC*B+D=ACB+D=A
872590...58\frac{725}{90}...5890725...5
89011...28\frac{90}{11}...281190...2
8111...38\frac{11}{1}...38111...3
810...18\frac{1}{0}...1801...1

我们得到了余数后,将其从下到上进行排序即可得到我们想要的8进制数1325(8)1325_{(8)}1325(8)

以上就是10进制转n进制的办法。那么对于n进制转10进制的办法理解起来简单一些。
比如数字1325(8)1325_{(8)}1325(8)转成10进制,所需要做的就是:
result(10)=1∗83+3∗82+2∗81+5∗80=725result_{(10)}=1*8^3+3*8^2+2*8^1+5*8^0 = 725result(10)=183+382+281+580=725

二进制的特性

二进制有一些比较有意思的特性,首先它可以很方便的进行逻辑运算(布尔运算),因为它是一个二值的,可以看为true和false。另一方面它与8进制,16进制有方便的转换关系,四个连续的二进制位可以转成一个16进制位,比如:000110000001100000011000,我们可以拆分成四个一组为:0001 10000001\space10000001 1000,然后四个一组转换成16进制数18(16)18_{(16)}18(16)

总结

  1. 二进制用于计算机是因为电子元器件能方便的记录两个状态,这样经济性比较好。
  2. 进制的意义是所谓的“逢几进一”,但对于计算机的有限存储来说,数值的范围/精度也因此受到了限制。
  3. 进制间的转换。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值