计算机各种进制之间的转换,外行人也能看的懂

简介: 计算机各种进制之间的转换,外行人也能看的懂

一、进位计数制

所谓进位计数制也称计数制,是指用一组固定的符号和统一的规则来表示

数值https://baike.baidu.com/item/%E6%95%B0%E5%80%BC的方法。按进位的方法进行计数,称为进位计数制。在计算机中采用的是主要是二进制,此外还有八进制、十进制、十六进制的表示方法。在日常生活中,我们最常用的是十进位计数制,即按照逢十进一的原则进行计数的。

下面先带大家了解一下进制中的基本概念。

一种进位计数制包含一组数码符号和三个基本因素:

  • 数码:一组用来表示某种数制的符号。例如,二进制的数码是0、1 ;八进制的数码是0、1、2、3、4、5、6、7;十进制的数码是0、1、2、3、4、5、6、7、8、9;十六进制的数码是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。
  • 基数(R):某种数制可以使用的数码个数。例如,二进制的基数是2,八进制的基数是8;十进制的基数是10; 十六进制的基数是16。

*数位(i):数码在一个数中所处的位置,以小数点为中心,小数点左边位数,从右向左依次从0开始,小数点右边位数从左向右依次从-1开始。例如十进制数543.21的每个数字所在位数为

415ac124066f47bb9296d401005e055b.png

  • 权(R^{i}):权是基数(R)的数位(i)次方,表示数码在不同位置上的数值。例如:十进制数值543.21 各位数的权分别为 10^{2}、10^{1}、10^{0}、10^{-1}、10^{-2}。
  • 加权计算各位项的合计值为结果值(k_{i}R^{i}):k_{i} 表示第 i 位的数字。任意进位数的值都可以写为按权展开的多项式的合计。例如 543.21 = 510^{2}+410^{1}+310^{0}+210^{-1}+1*10^{-2}。

注:负次方=正次方的倒数,比如10^{-1}=1/10^{1}。

二、计算机中常用的几种进制
计算机中常用的几种进制,二进制(B)、八进制(O)、十进制(D|不写区分符)、十六进制(H),几进制那么它的基数就是几。

三、进位计数制相互转换

3634ea2cc000a5282188802478f24c34.jpg

在线进制转换OSCHINA.NET在线工具,ostools为开发设计人员提供在线工具,提供jsbin在线 CSS、JS 调试,在线 Java API文档,在线 PHP API文档,在线 Node.js API文档,Less CSS编译器,MarkDown编译器等其他在线工具
这里附上在线进制转换工具,方便大家自我练习时验证计算结果是否正确。
1、二进制转八进制

转换规则:以小数点为中心,整数部分从右向左,小数部分从左向右,"三位一体",不足补0。

思路:先按照3位一体分隔,不足位补0,每3位代表一个值,计算时,每3位从右向左位次为0,1,2

10101010.1111_{B} =010 101 010.111 100 _{O} = 252.74​​​​​​​

做个小练习 比如:二进制数 111101.0110 转为8 进制为多少呢?

bd9e63fe028c4a6380983a74c2b33c94.png

2、二进制转十进制

转换规则:二进制各位上的系数*对应的权,然后求其和。

例如:二进制111.11转为十进制数,结果为7.75

b1942ad887914b9d9b6aa36600552636.png

3、二进制转十六进制

转换规则:以小数点为中心,整数部分从右向左,小数部分从左向右,"四位一体",不足补0。

例如:二进制数,101010101.111 转换为 16进制为 155.E

6df7b52c225642738c9d410dc928e984.png


注:上面图例中小数点后的 1110 四位计算过程写错了,应该是从右向左计算,下图纠正的计算过程

a2164b3c70884c72999b8480192e89de.png

注:在十六进制中,只有0~9,A~F 数位。A~F 与 十进制中 10~15 等同。
4、八进制转二进制

转换规则与二进制转八进制正好相反,把八进制上的每一位数一分为三,即为二进制数。

例如:765.43 转为 二进制为 111 110 101 . 100 011

首先八进制数只有0~7 ,那么二进制跟八进制的对应关系表如下,记住即可。

image.png

5、八进制转十进制

转换规则:八进制各位数上的系数*权,再求和。

例如:123.13 转为十进制就是 83.171875

7ff1fbc0481b4a38bb3baa54dbb6e82f.png

6、八进制转十六进制

转换规则1:先把八进制转成十进制,再把十进制转成十六进制。

转换规则2:先把八进制转成二进制,再把二进制转成十六进制。

例如:八进制数77.77 ,先转成二进制为 111 111.111 111,再转为16进制,此处二进制转16进制为4位一体的分隔规则,为0011 1111. 1111 1100,那么计算为16进制,结果就是 3F.FC。
7、十进制转成 n (n=2,8,16)进制数

转换规则:整数部分除以 n 取余数,倒着写。

              小数部分乘以 n 取整数,顺着写。小数部分一般保留三位,末位四舍五入。

例如:十进制数18.55 转十六进制数,结果为:12.852(H)

这里我个人觉得必须掌握十进制转二进制方法。

例如:十进制数18.75 (D)转为二进制数为 10010.11(B)

1d230fdd0e044c0ea38e7b353bd2d098.png

整数位计算方式: 整数位除以2 取余数直到商为0,那么按照上面计算过程得到的余数,从上到下依次对应二进制整数位的从右到左顺序的值 10010。

0.75*2 = 1.5 取整数 1 对应二进制位小数点后第一位

0.5*2 = 1.0 取整数1 对应二进制位小数点后第二位

小数位计算方式:小数乘以2 取整数位直到所得结果为整数停止,正序对应二进制数位的从左到右顺序的值11
8、十六进制转二进制

转换规则:把十六进制每一位数,一分为四,即可得到二进制数。

例如:十六进制 FEC.BA 转为 二进制为 1111 1110 1100.1011 1010

image.png

8、十六进制转八进制

转换规则:

先从十六转十进制,再转为八进制

或者

十六转为二进制,再转为八进制
9、十六进制转十进制

转换规则:让十六进制上的各位系数乘以对应的权,然后求和即为十进制数值。

例如:十六进制的 12F.C 转为 十进制 就是 303.75

计算过程如下

bc651bf9b2bd4a968a429169c629d233.png

个人感觉,最主要需要掌握 二进制 和十进制 之间的转换是最基础的。
四、总结:

n 进制转 十进制的规则 小数点左侧(系数*n的位次方+系数*n的负位次方)。

注:n进制转十进制时,小数点左侧按照从右向左位次依次为0,1,2...;小数点右侧按照从左到右位次依次为-1,-2,...。

二进制转八进制,三位一体分隔;反过来,八进制转二进制,一分为三。

注:二进制转为八进制或十六进制,分割后,计算时,按照从右向左位次,依次为0,1,2

二进制转十六进制,四位一体分隔;反过来,十六进制转二进制,一分为四。
 十进制转二进制,整数部分除以2,取余数,一直到商为0。每次得到的余数按倒序从右向左依次就是二进制小数点左侧的数值。小数部分*2,每次取整数位,直到乘2结果为整数,每次得到的整数位正序从左向右依次就是二进制小数点右侧的数值。
相关文章
|
6月前
|
存储
探索计算机内部的神秘语言:二进制的魅力
二进制是一种由0和1组成的数制系统,是计算机中最基础的表示方式。通过了解二进制,我们可以深入了解计算机的内部工作原理,如数据存储、运算和传输等。这种简单而神奇的数字语言将帮助读者揭开计算机世界的神秘面纱,激发对科技的兴趣和探索欲望。
235 2
探索计算机内部的神秘语言:二进制的魅力
30.【十进制和二进制的相互转化(超详解)】
30.【十进制和二进制的相互转化(超详解)】
111 0
|
程序员 知识图谱
电影《孤注一掷》感触、计算机底层二进制与十进制的转换
看完《孤注一掷》后,我内心激荡起一股深刻的情感。今天,我希望与大家分享这部电影的观后感,同时还想简要介绍一下电影中涉及的秘密线索666关于二进制和十进制转换的原理。另外,也推荐一本我认为写得较为出色的计算机书籍——《计算机底层的秘密》。这段经历充满启示,引导我们一同深入探索其中蕴含的智慧。
895 0
电影《孤注一掷》感触、计算机底层二进制与十进制的转换
|
存储
【计算机组成原理】计算机的性能指标、数据的表示和运算、BCD码和余3码
计算机组成原理(二) 计算机的性能指标: 存储器的性能指标:
168 0
|
4月前
|
存储
计算机中二进制与数字逻辑
【7月更文挑战第26天】
74 2
|
6月前
|
存储 安全 程序员
|
6月前
|
C++
十进制二进制相互转化C++
十进制二进制相互转化C++
28 0
|
6月前
|
存储
计算机中数据的存储及二,八,十六进制的介绍
本文将向大家介绍各种进制其中包括:二级制,八进制,十六进制;数据在内存中将如何存储。
167 0
|
存储 JavaScript 前端开发
计算机底层知识之二进制
用二进制数表示计算机信息的原因 推荐阅读指数 ⭐️⭐️⭐️⭐️ 什么是二进制 推荐阅读指数 ⭐️⭐️⭐️⭐️⭐️ 补数 推荐阅读指数 ⭐️⭐️⭐️⭐️⭐️ 逻辑运算 推荐阅读指数 ⭐️⭐️⭐️
181 0
计算机底层知识之二进制
|
存储 C语言
【实验向】问题:假设计算机A和计算机B通信,计算机A给计算机B发送一串16个字节的二进制字节串,以数组形式表示:
【实验向】问题:假设计算机A和计算机B通信,计算机A给计算机B发送一串16个字节的二进制字节串,以数组形式表示:
145 0