简述二进制

1.二进制

1.1二进制的由来

17世纪至18世纪的德国数学家莱布尼茨,是世界上第一个提出二进制记数法的人。他对帕斯卡的加法器进行了改进,设计并制造了一种手摇的演算机,提出了他认为吻合中国“先天八卦”的二进制,后代计算技术的发展受到影响。

1.2二进制的计数系统

在基数b的位置记数系统(其中b是一个正自然数,叫做基数),b个基本符号(或者叫数字)对应于包括0的最小b个自然数。 要产生其他的数,符号在数中的位置要被用到。最后一位的符号用它本身的值,向左一位其值乘以b。一般来讲,若b是基底,我们在b进制系统中的数表示为在这里插入图片描述 的形式,并按次序写下数字a0a1a2a3…ak。这些数字是0到b-1的自然数。

二进制数据也是采用位置计数法,其位权是以2为底的幂。例如二进制数据110.11,逢2进1,其权的大小顺序为2²、2¹、2º、 、 。对于有n位整数,m位小数的二进制数据用加权系数展开式表示,可写为:
在这里插入图片描述
二进制数据一般可写为:
在这里插入图片描述
【例】:将二进制数据111.01写成加权系数的形式。
在这里插入图片描述
注:二进制和十六进制,八进制一样,都以二的幂来进位的。

2.二进制数

2.1二进制数与计算机的关系

二进制数(binaries)是逢2进位的进位制,0、1是基本算符;计算机运算基础采用二进制。所有的电子计算机中只有两种基本的状态,开和关。也就是说,电子管的两种状态决定了以电子管为基础的电子计算机采用二进制来表示数字和数据。

常用的进制还有8进制和16进制,在电脑科学中,经常会用到16进制,而十进制的使用非常少,这是因为16进制和二进制有天然的联系:4个二进制位可以表示从0到15的数字,这刚好是1个16进制位可以表示的数据,也就是说,将二进制转换成16进制只要每4位进行转换就可以了。

2.2二进制数一些特性

1、如果一个二进制数(整型)数的第零位的值是1,那么这个数就是奇数;而如果该位是0,那么这个数就是偶数。
2、如果一个二进制数的低端n位都是零,那么这个数可以被2n整除。
3、如果一个二进制数的第n位是一,而其他各位都是零,那么这个数等于2^n。
4、如果一个二进制数的第零位到第n - 1位都是1,而且其他各位都是0,那么这个数等于2^n - 1。
5、将一个二进制数的所有位左移一位的结果是将该数乘以二。
6、将一个无符号二进制数的所有位右移一位的结果等效于该数除以二(这对有符号数不适用)。余数会被下舍入(rounddown)。
7、将两个n位的二进制数相乘可能会需要2*n位来保存结果。
8、将一个二进制数的所有位取反(就是将所有的一改为零,所有的零改为一)等效于将该数取负(改变符号)再将结果减一。

3.运算

3.1四则运算

二进制数与十进制数一样,同样可以进行加、减、乘、除四则运算。其算法规则如下:
加运算:0+0=0,0+1=1,1+0=1,1+1=10,(逢2进1);
减运算:1-1=0,1-0=1,0-0=0,0-1=1,(向高位借1当2);
乘运算:0×0=0,0×1=0,1×0=0,1×1=1,(只有同时为“1”时结果才为“1”);
除运算:二进制数只有两个数(0,1),因此它的商是1或0。

3.2进制转换(以十进制与二进制转化为例)

3.2.1二进制转换为十进制

方法:“按权展开求和”,该方法的具体步骤是先将二迸制的数写成加权系数展开式,而后根据十进制的加法规则进行求和 [6] 。
【例】:
在这里插入图片描述
规律:个位上的数字的次数是0,十位上的数字的次数是1,…,依次递增,而十分位的数字的次数是-1,百分位上数字的次数是-2,…,依次递减。

3.2.1十进制转换为二进制

一个十进制数转换为二进制数要分整数部分和小数部分分别转换,最后再组合到一起。
整数部分采用 "除2取余,逆序排列"法。具体做法是:用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为小于1时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。例:125 :
在这里插入图片描述
小数部分要使用“乘 2 取整法”。即用十进制的小数乘以 2 并取走结果的整数(必是 0 或 1),然后再用剩下的小数重复刚才的步骤,直到剩余的小数为 0 时停止,最后将每次得到的整数部分按先后顺序从左到右排列即得到所对应二进制小数。例如,将十进制小数 0.8175 转换成二进制小数过程如下:
在这里插入图片描述
最后的结果为:0.8125D=0.1101B


参考链接:
https://baike.baidu.com/item/%E4%BA%8C%E8%BF%9B%E5%88%B6/361457?fr=aladdin
https://baike.baidu.com/item/%E4%BA%8C%E8%BF%9B%E5%88%B6%E6%95%B0/108101?fr=aladdin

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用提供了十六进制数转二进制数的算法。该算法使用除2取余法,对每个十六进制数转换为4个二进制数,并在不足4个二进制数时在最左边补零。 具体步骤如下: 1. 将待转换的十六进制数从最高位开始,依次进行以下操作: 2. 对每个十六进制数进行除2取余法,得到对应的二进制数。 3. 对每个十六进制数转换为4个二进制数,不足4个二进制数时,在最左边补零。 4. 重复步骤2和步骤3,直到将所有的十六进制数都转换为对应的二进制数。 举例来说,如果要将十六进制数14A7H转换为二进制数,首先将十六进制数1转换为对应的四位二进制数0001,然后将十六进制数4转换为对应的四位二进制数0100,再将十六进制数A转换为对应的四位二进制数1010,最后将十六进制数7转换为对应的四位二进制数0111。将这四组二进制数连接起来,即得到十六进制数14A7H对应的二进制数0001010010100111。 因此,十六进制数转二进制数的算法是通过除2取余法将每个十六进制数转换为4个二进制数,并在不足4个二进制数时在最左边补零。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [简述二进制码、十进制码、BCD码、十六进制码转换的算法](https://blog.csdn.net/weixin_46424753/article/details/127996310)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatgptT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值