【c++竞赛note】:进制转换

在生活中,你一定会遇到多多少少的进制,时钟是60进制,我们熟知的计算机用的是2进制。。。
在我们的电脑上也有进制转换的工具,电脑自带的计算器:
在这里插入图片描述

二进制

二进制(Binary System)是一种以2为基数的数制系统,表示任何数量的方法只用两个符号:0和1。二进制是计算机系统的核心,因为它与数字电路的逻辑开关机制(通断)紧密匹配。

二进制的构成

在二进制数中,每一位称为一个比特(bit),代表了两个状态之一(0或1)。从右往左,每一位比特的位置依次表示2的不同次幂,这种方式称为位权。位权的顺序如下:

  • 第一位是 (2^0) 位,值为1。
  • 第二位是 (2^1) 位,值为2。
  • 第三位是 (2^2) 位,值为4。
  • 第四位是 (2^3) 位,值为8。
  • 依此类推…
二进制数与十进制数的转换

要将一个二进制数转换为十进制数,需要把各位比特值乘以该位的位权,再把所有结果相加。

例如,二进制数 1011 的计算过程如下:

1×23+0×22+1×21+1×20=8+0+2+1=11 1 \times 2^3 + 0 \times 2^2 + 1 \times 2^1 + 1 \times 2^0 = 8 + 0 + 2 + 1 = 11 1×23+0×22+1×21+1×20=8+0+2+1=11

因此,二进制 1011 在十进制中等于11。

二进制的运算

二进制的加法、减法、乘法和除法都可以与十进制运算相对应。下面是一些二进制运算的简单示例:

加法

二进制加法的规则与十进制相似,但它只有两个数位,1+1会产生进位。具体规则如下:

  • 0 + 0 = 0
  • 0 + 1 = 1
  • 1 + 0 = 1
  • 1 + 1 = 10 (进位1)

例如,二进制数 101011 相加:

101+011=1000 101 + 011 = 1000 101+011=1000

减法

二进制的减法规则如下:

  • 0 - 0 = 0
  • 1 - 0 = 1
  • 1 - 1 = 0
  • 0 - 1 = 1 (借位1)

例如,二进制数 1101 减去 0110

1101−0110=0111 1101 - 0110 = 0111 11010110=0111

为什么二进制适合计算机?

二进制与数字电路的逻辑状态匹配。数字电路通常使用“开”(通电)和“关”(断电)两种状态,正好对应二进制的1和0。因此,使用二进制可以大幅简化电路设计,实现数据的存储和传输。

二进制还与布尔代数密切相关,便于计算机执行逻辑运算,这些运算对于处理复杂计算和执行指令至关重要。

常见二进制概念
  1. 字节(Byte):由8个二进制位(bit)组成,是计算机存储数据的最小单位。
  2. 进制转换:二进制可以转换为十进制、十六进制等其他进制。在程序设计中,常见的16进制和8进制也是通过二进制组合而来。

总的来说,二进制的简单性、稳定性和与硬件的良好兼容性,使得它成为了计算机系统的基础。

八进制

八进制(Octal)是一种以8为基数的数制,使用0到7这八个数字来表示。它的每一位数都代表8的不同次幂,因此八进制数表示的数值可以用8进位来计算。

八进制的构成

八进制数的每一位从右往左依次代表8的次幂,具体位置和位权如下:

  • 第一位是 (8^0) 位,值为1。
  • 第二位是 (8^1) 位,值为8。
  • 第三位是 (8^2) 位,值为64。
  • 第四位是 (8^3) 位,值为512。
  • 依此类推…
八进制数与十进制数的转换

八进制数转为十进制时,与二进制类似。每一位上的数值乘以该位的位权,然后将所有结果相加。

例如,八进制数 237 的转换过程如下:

2×82+3×81+7×80=2×64+3×8+7×1=128+24+7=159 2 \times 8^2 + 3 \times 8^1 + 7 \times 8^0 = 2 \times 64 + 3 \times 8 + 7 \times 1 = 128 + 24 + 7 = 159 2×82+3×81+7×80=2×64+3×8+7×1=128+24+7=159
因此,八进制 237 在十进制中等于159。

八进制与二进制的关系

八进制与二进制之间的转换非常方便,因为每一个八进制数字都可以直接转换为三个二进制位。比如:

  • 八进制的 0 对应二进制的 000
  • 八进制的 1 对应二进制的 001
  • 八进制的 2 对应二进制的 010
  • 八进制的 7 对应二进制的 111

因此,八进制数 237 可以表示为二进制数 010 011 111,即 10011111

八进制的运算

八进制的加法、减法、乘法和除法遵循与十进制相似的规则,但因为是以8为基数,所以计算时每当数位之和或差达到8时就会产生进位或借位。

加法

例如,八进制数 4532 相加:

458+328=778 45_8 + 32_8 = 77_8 458+328=778

减法

八进制数 65 减去 27
658−278=36865_8 - 27_8 = 36_8658278=368

八进制在计算机中的应用

在早期的计算机系统中,八进制被广泛使用,特别是在Unix系统中,因为它简化了二进制的表示方式,可以用较少的位数表示二进制数据。虽然现在大多数系统更倾向于使用十六进制表示,但八进制在文件权限等操作系统领域中仍有应用。

十六进制

十六进制(Hexadecimal)是一种以16为基数的数制,用于简洁表示二进制数。十六进制使用0到9的数字表示数值0到9,使用字母A到F表示数值10到15。因此,十六进制的数位包括16种可能的符号:0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

十六进制的构成

十六进制数的每一位从右往左依次代表16的次幂,具体位置和位权如下:

  • 第一位是 (16^0) 位,值为1。
  • 第二位是 (16^1) 位,值为16。
  • 第三位是 (16^2) 位,值为256。
  • 第四位是 (16^3) 位,值为4096。
  • 依此类推…
十六进制数与十进制数的转换

将十六进制数转为十进制的方法是将每一位乘以该位的位权,然后将结果相加。

例如,十六进制数 2F3 的计算过程如下:

2×162+F×161+3×160 2 \times 16^2 + F \times 16^1 + 3 \times 16^0 2×162+F×161+3×160
因为F代表十进制的15,所以继续计算为:

2×256+15×16+3×1=512+240+3=755 2 \times 256 + 15 \times 16 + 3 \times 1 = 512 + 240 + 3 = 755 2×256+15×16+3×1=512+240+3=755

因此,十六进制 2F3 在十进制中等于755。

十六进制与二进制的关系

十六进制数与二进制数的转换非常方便,因为每一位十六进制数可以直接转换为4个二进制位(4位二进制可以表示0到15的数值范围)。例如:

  • 十六进制的 0 对应二进制的 0000
  • 十六进制的 1 对应二进制的 0001
  • 十六进制的 A(10)对应二进制的 1010
  • 十六进制的 F(15)对应二进制的 1111

所以,十六进制数 2F3 可以转换成二进制数 0010 1111 0011,即 1011110011

十六进制的运算

十六进制的加法、减法、乘法和除法可以遵循与十进制相似的规则,但计算时每当数位之和或差达到16时,就会产生进位或借位。

加法

例如,十六进制数 A3B5 相加:

A316+B516=15816 A3_{16} + B5_{16} = 158_{16} A316+B516=15816

减法

十六进制数 D4 减去 3B

D416−3B16=9916D4_{16} - 3B_{16} = 99_{16} D4163B16=9916

十六进制在计算机中的应用

十六进制数广泛用于计算机系统,因为它能简洁地表示长串的二进制数。每4位二进制数可以用1位十六进制表示,这样便于人类阅读和处理。常见的应用包括:

  1. 内存地址:许多操作系统和编程语言用十六进制表示内存地址。
  2. 颜色编码:在网页设计和图形编程中,颜色通常以十六进制表示。例如,颜色代码 #FF5733 表示红色、绿色和蓝色的不同值。
  3. 机器码和汇编语言:十六进制简化了与二进制数打交道的过程,有助于查看和分析低级别的数据。

十六进制数在现代计算机系统和软件开发中几乎无处不在,因其便于与二进制转换的特点使它在存储、计算和显示方面非常高效。

进制转换的方法

我偷偷地从我老师那偷到了一幅图,这里面整理了许多进制转化的方法
在这里插入图片描述


by:LS_wzx,


宇宙免责声明:
部分由ChatGPT编写,如有错误,私信请联系我,谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值