[杂谈]-二进制到十进制转换

news2024/11/15 8:31:58

二进制到十进制转换

文章目录

  • 二进制到十进制转换
    • 1、概述
    • 2、十进制计数系统
    • 3、二进制计数系统
    • 4、二进制到十进制转换示例
    • 5、十进制到二进制转换
    • 6、二进制数的名称和前缀
    • 7、总结

1、概述

二进制数在数字系统和计算机中用于计算数据。 此外,数字系统之间的数据传输或接口也使用二进制数来传输信息。 从上一篇文章中[从[杂谈]-从硬件角度理解二进制数我们知道,二进制数是以2为基数的数字,这意味着它只有两 (2) 个数字来表示数字的值。 这些数字从 0 开始,到 1 结束,总共有两 (2) 个数字作为一个数字的值。 二进制数可以包含多于一个这样的数字,例如二进制数(1001102)具有六(6)个二进制数字。 数字末尾的下标2表明它是一个以2为底的数字,即二进制数。

然而,最常用的计数进制是十进制,它是一种以 10 为基数的计数系统。 十进制数中的每个数字可以具有从 0 开始到 9 结束的十 (10) 个值中的任意一个。与二进制数一样,十进制数可以包含多个数字。 例如, ( 38240 ) 10 (38240)_{10} (38240)10 数字有五 (5) 位,下标 10 表明它是基于 10 的数字,即十进制数字。 同样,十进制数的加(+)、减(-)、乘(×)和除(÷)运算,这些数学运算也可以应用于其他计数系统。

计数系统中的每个数字都包含一个值或权重,并从左到右递增。 从左到右,每个数字的值或权重比其前一个数字增加基数倍。 这意味着数字权重或值由提高到数字位置的基值给出。 最低有效数字 (Least Significant Digit ,LSD) 的位置为零 (0)。 例如,十进制数八十二 ( 82 ) 10 (82)_{10} (82)10 有两个数字,即8)和2。 2是从小数右侧开始位置为零 (0) 的最低有效数字,因此其权重为 $10^0 $(1)。 同样,第二个数字(在本例中为最高有效数字)的位置为1,其权重为 1 0 1 10^1 101 (10)。 因此,从右到左,对于十进制数,即 1、10、100、1000 等,每个数字的权重增加十 (10) 倍。同样,对于二进制数,权重增加两 (2) 倍 即 1、2、4、8、16、32 等。

从数学上来说,数字是加权和,由下式给出:

N = ∑ b i × q i N = \sum{b_i \times q^i} N=bi×qi

其中,

  • N为实数
  • b为位数
  • q为基值
  • i为位数位置值

2、十进制计数系统

如前所述,在十进制数中,从小数点开始,每个数字的值会增加十 (10) 倍,即 100、 1 0 1 10^1 101 1 0 2 10^2 102 1 0 3 10^3 103 1 0 4 10^4 104 等。同样,每个数字的值会减少十 (10) ) 次,我们从小数点向右移动以计算分数,例如 1 0 − 1 10^{-1} 101 1 0 − 2 10^{-2} 102 1 0 − 3 10^{-3} 103 1 0 − 4 10^{-4} 104 等。这是因为十进制数以 10 为底(模 10),每个数字的位置指示该数字的权重或大小,即 q = 10. 例如,这意味着50可写为 5 × 1 0 1 5 \times 10^1 5×101,500可写为 5 × 1 0 2 5 \times 10^2 5×102。 如上所述,十进制数等于其各位数字之和乘以各自的权重。 在下面的文本中,一个十进制数 (N = 4125) 以十进制格式显示,其中包含每个数字及其权重。

在这里插入图片描述

b × q b \times q b×q的形式如下:

在这里插入图片描述

在十进制数或任何其他数字系统中,最右边的数字是最低有效数字 (LSD),最左边的数字是最高有效数字 (MSD)。 接下来,对于上面的示例,5是最低有效数字 (LSD),其权重最低,即1。 同时,4是最高有效数字 (MSD),其权重最高为一千 (1000)。

3、二进制计数系统

正如本文前面所讨论的,二进制计数系统是数字和计算机系统中的基本计数系统。 与十进制系统一样,二进制计数系统遵循相同的规则集,只不过二进制数是基数 2 的计数系统而不是基数 10。 这意味着二进制数字的权重变化为2次方,而不是10次方。 小数位的权重从小数点向右依次为 1 0 0 、 1 0 1 、 1 0 2 、 1 0 3 、 1 0 4 10^0、10^1、10^2、10^3、10^4 100101102103104等。 然而,二进制数字的权重是 1 0 0 、 2 1 、 2 2 、 2 3 、 2 4 10^0、2^1、2^2、2^3、2^4 10021222324等。

此外,二进制数字可以保存 0 或 1,即两个值。 二进制数可以由多于一个二进制数字组成,并且每个二进制数字的权重或值比其前一个右侧二进制数字增加2倍。 因此,按照十进制计数系统,最右边具有最低权重的二进制数字(位)称为最低有效位(LSB)。 同样,最左边的二进制数字(位)拥有最高权重,称为最高有效位 (MSB)。 由于该位可以具有0或1,因此具有0值的位的权重无效,并且二进制计数系统可以由具有1值的数字的权重来表示。 下表显示了二进制数的位数及其等效的十进制值的权重。

在这里插入图片描述

当我们从右向左移动时,每个二进制数字(位)的权重随着每个数字的步长而增加(加倍)。 最低有效数字 (LSD) 的权重最低为1,最高有效数字 (MSD) 的权重最高为256。

4、二进制到十进制转换示例

将 8 位二进制数 ( 11010011 ) 2 (11010011)_2 (11010011)2转换为其等效的十进制数。 下表列出了每个二进制数字(位)的权重及其十进制等效值。

在这里插入图片描述

现在,使用加权和的方法,可以得到这个二进制数的十进制等值。

因此,对于二进制数,可以通过值为1的数字权重之和轻松获得等效的十进制数。0值的数字与其权重的乘积为零,因此计入加权值中。

5、十进制到二进制转换

上面显示了使用加权和方法将二进制数转换为等效的十进制数。 为了将十进制数转换为等效的二进制数,可以使用重复除以2方法来实现。 在此方法中,给定的十进制数除以2,得到一个商和一个为 0 或 1 的余数。商被重复除以 2,连续产生一个余数,直到商变为零。 重复除法过程中获得的余数构成所需的二进制数。 第一个余值形成二进制数的最低有效位 (LSB),最后一个剩余值形成二进制数的最高有效位 (MSB)。

在以下示例中,使用重复除以2方法将十进制数 ( 238 ) 10 (238)_{10} (238)10转换为二进制数。

在这里插入图片描述

同样的方法也可以用于将十进制数转换为另一种计数系统,只不过除以2被替换为计数系统的基值。

6、二进制数的名称和前缀

与十进制数一样,两个二进制数也可以一起加减。 结果数字的大小取决于相加或相减的二进制数的大小。 二进制数的大小由二进制位数(位数)给出,位数分为不同的大小和名称。 在下表中,位数被分为更大的组,并且还给出了它们各自的名称。

在这里插入图片描述

这里值得一提的是,在解释这些数字时应该小心,因为十进制数字(从 0 到 9)的数字值也包含在二进制和八进制计数系统中。 例如,数字 101 可能表示二进制、八进制或十进制数。 同样,数字 234 可以是八进制数或十进制数。 通常,没有任何基值或计数系统的数字表示十进制数。 最好将数字及其基值作为下标,例如 10 1 2 101_2 1012(二进制数)或 10 1 10 101_{10} 10110(十进制数)。

数字系统和计算机的内存大小以字节为单位,将8位组合在一起。 与其他测量单位一样,添加前缀来表示较大的值。 下表列出了最常用的表示二进制数的前缀。

在这里插入图片描述

7、总结

  • 二进制数是一种以 2 为基数的计数系统,由称为位的二进制数字组成。
  • 一个位的值可以是“0”或“1”,即它的值只能容纳两个数字。
  • 位值的大小或权重是其前一位(从右到左)的两倍(2 的幂)。
  • 最右边的位称为最低有效位 (LSB),在二进制数中具有最低的权重。
  • 最左边的位称为最高有效位 (MSB),在二进制数中具有最高权重。
  • 可以使用权重总和方法将二进制数转换为十进制数,该方法将每个数字的值与其权重的乘积相加。
  • 可以使用重复除以 2 方法将十进制数转换为二进制数,该方法将十进制数除以商和余数。 余数构成所需的二进制数,直到除法结果为 0 商。 第一个和最后一个余数分别形成 LSB 和 MSB。
  • 最好通过将基值写为下标来提及编号系统和数字,以避免误解。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1012855.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【iOS】浅析static,const,extern关键字

文章目录 前言一、staticstatic修饰局部变量static修饰全局变量总结 二、const三、extern声明全局变量声明函数在头文件中使用总结 前言 笔者本周在学习单例模式时,用到了static关键字,特此总结博客记录学习static,const,extern关…

文件名批量重命名与翻译的实用指南

随着电脑使用的普及,我们经常需要处理大量的文件和文件。有时,我们可能希望将文件的名称进行批量修改,并且还希望将这些名称翻译成其他语言,以便更好地管理和查找文件。在这篇文章中,我们将介绍一种实用的技巧&#xf…

【面试经典150 | 数组】删除有序数组中的重复项 II

文章目录 写在前面Tag题目解读题目来源解题思路方法一:原地操作 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法,两到三天更新一篇文章,欢迎催更…… 专栏内容以分析题目为主,并附带一些对于本题涉及到的数据结构等…

Hadoop生态圈中的数据同步工具SQOOP

Hadoop生态圈中的数据同步工具SQOOP 一、sqoop的概念二、sqoop的核心功能1、数据导入import2、数据导出export 三、sqoop的底层实现四、sqoop的安装和部署五、sqoop的基本操作1、sqoop查看RDBMS中有哪些数据库2、sqoop查看某一个数据库下有哪些数据表3、通过sqoop执行sql语句 …

SOLIDWORKS有限元分析怎么做?

在许多专业领域中,尤其是在机械行业,为了缩短开发周期,设计完成后通常需要进行仿真分析。通常情况下,大家会使用专业的有限元仿真软件如ANSYS进行仿真分析。但其实,SOLIDWORKS软件因其简单易用的制图功能以及内置的专用…

bigcache

bigcache 介绍 借用下图片,实际上,这张图还不太全,queueItem 中,entrydata的最前端 8 字节是时间戳,用来计算过期时间的。 bigcache 的思想主要有以下几点: 大并发下,尽量减少同步带来的时…

3 分钟,带你了解低代码开发

一、低代码平台存在的意义 传统软件开发交付链中,需求经过3次传递,用户→业务→架构师→开发,每一层传递都可能使需求失真,导致最终交付的功能返工。 业务的变化促使软件开发过程不断更新、迭代和演进,而低代码开发即是…

2023!6招玩转 Appium 自动化测试

Appium是个什么鬼 Appium是一个移动端的自动化框架,可用于测试原生应用,移动网页应用和混合型应用,且是跨平台的。可用于IOS和Android以及firefox的操作系统。原生的应用是指用android或ios的sdk编写的应用,移动网页应用是指网页…

合约谈崩,3大汽车厂工人集体罢工 | 百能云芯

周五,美国联合汽车工会(UAW)在底特律三大汽车制造商通用汽车、福特汽车和克莱斯勒母公司Stellantis旗下的各一家工厂同步举行了罢工,可能因工资和就业保障问题引发一场代价高昂且长时间的对峙。 协商签订新劳资协议的最后期限已过…

【多线程】死锁 详解

死锁 一. 死锁是什么二. 死锁的场景1. 一个线程一把锁2. 两个线程两把锁3. N 个线程 M 把锁 三. 死锁产生的四个必要条件四. 如何避免死锁 一. 死锁是什么 死锁是这样一种情形: 多个线程同时被阻塞,因为每个进程都在等其他线程释放某些资源,…

在波卡区块链学院学习 Web3 是种什么体验?

成立于 2022 年的 Polkadot Blockchain Academy(波卡区块链学院,以下简称 PBA)是由波卡生态成立的一个深入的、开创性的区块链课程,致力于帮助 Web3 创新者和未来的顶级编程人员实现他们的想法和抱负。 波卡区块链学院由波卡创始…

LeetCode 1222. 可以攻击国王的皇后【数组,模拟】1391

本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…

Yakit学习

Yakit下载 下载地址: yaklang/yakit: Cyber Security ALL-IN-ONE Platform (github.com) MITM交互式劫持 这个模块相当于burpsuite的proxy模块,MITM 操作台可百分百替代 BurpSuite执行所有操作(下载并安装证书、劫持请求、响应、编辑劫持到的数据包等)。…

Datax 数据同步-使用总结(二)

一、前言 这部分主要记录 datax 实现增量同步的方案。 二、核心思路 结合datax 提供的preSql、 postSql以及占位符,外加另外一张表同步日志表来记录相关同步信息。 三、版本迭代 3.1 初版本 where tbq.opera_date > cast(date_format(DATE_SUB(NOW(), inte…

图论第四天|127. 单词接龙、841. 钥匙和房间、463. 岛屿的周长

127. 单词接龙 ★ 文档讲解 :代码随想录 - 127. 单词接龙 状态:开始学习。(★:需要多次回顾并重点回顾) 思路: 本题需要解决两个问题: 图中的线是如何连在一起的 题目中并没有给出点与点之间的…

【Robotframework+python】实现http接口自动化测试

前言 下周即将展开一个http接口测试的需求,刚刚完成的java类接口测试工作中,由于之前犯懒,没有提前搭建好自动化回归测试框架,以至于后期rd每修改一个bug,经常导致之前没有问题的case又产生了bug,所以需要…

长城汽车,能打“持久战”吗?

文丨智能相对论 作者丨沈浪 百年汽车工业史正在进入一个全新的发展阶段:油改电的变革仍在激化,智能化的探索才刚刚起步,汽车产品将以什么样的面貌展现在世人面前,市场格局又将迎来怎样的变化?无人可知。 然而&#…

【Linix-Day12-线程同步和线程安全】

线程同步 和 线程安全 线程同步 除了信号量和互斥锁(互斥锁和条件变量上次介绍过),还有两种方式同步 1.读写锁 当同时对一块内存读写时,会出现下列问题,故而引入读写锁 接口介绍: 1.int pthread_rwloc…

PostgreSQL 事务并发锁

文章目录 PostgreSQL 事务大家都知道的 ACID事务的基本使用保存点 PostgreSQL 并发并发问题MVCC PostgreSQL 锁机制表锁行锁 总结 PostgreSQL 事务 大家都知道的 ACID 在日常操作中,对于一组相关操作,通常要求要么都成功,要么都失败。在关系…