精华内容
下载资源
问答
  • 十进制小数转换成二进制的原理理解 浮点数 发布于 2018-03-08 约 2 分钟 十进制小数转换成二进制的原理理解 在学习浮点数据类型的时候,涉及到了10进制的小数如何转成2进制数的问题(此文章不讨论精度问题,仅...

    machenchi0207

    • 1.2k
    •  

    4

     

     

    十进制小数转换成二进制的原理理解

    浮点数

    发布于 2018-03-08  约 2 分钟

    十进制小数转换成二进制的原理理解

    在学习浮点数据类型的时候,涉及到了10进制的小数如何转成2进制数的问题(此文章不讨论精度问题,仅涉及转换原理--乘2取整).学习到的方法是“乘2取整“,但是一直不知道具体原理是什么,现在从数学上说明一下原理

    乘2取整的操作方法

    将十进制的小数部分乘2,将所得结果的整数位作为二进制的位。舍弃乘2所得结果的整数部分,如果剩余部分为0,计算结束。否则继续乘2,进行取整操作(所得整数位继续向右添加)。(如果出现循环,则终止计算,写成循环小数格式,或根据精度位数要求,保留结果位数,停止计算)
    举例说明:
    
    
    十进制数:0.25
    
    1. 0.25 x 2 = 0.5 二进制数 : 0.0
    
    2. 0.5 x 2 = 1.0 二进制数 : 0.01
    
    结果二进制数: 0.01
    

    原理解释

    十进制数的小数部分 M 对应二进制部分应为 A1 * 2^(-1) + A2 * 2^(-2) + ... + An * 2^(-n) 其中An 为 0 或 1

    现在将 M 乘 2 :M * 2 = A1 * 2^0 + A2 * 2^-1 + ... + An * 2^(1-n)

    此时,A1 * 2^0 = A1 即为 M * 2的整数部分的值 求出了A1.

    然后舍弃M * 2 的整数部分,即舍弃了 A1. M * 2 - A1 = A2 * 2^-1 + ... + An * 2^(1-n)

    最后不断重复这一计算方式,直到乘2所得的结果小数部分为0(或者达到要求精度的位数)为止,二进制小数即为: 0.A1A2..Am (为0时m=n,否则根据精度要求决定m大小)

    阅读 7.3k发布于 2018-03-08

    展开全文
  • '''今天也要努力成为Python做题家:笔算十进制转换二进制的原理和方法十进制10 = 1*10^1100 = 1*10^21000 = 1*10^3二进制10 = 1*2^1100 = 1*2^21000 = 1*2^3笔算十进制转二进制的方法例如将9转二进制9/2 = 4 余数 1 ...

    '''

    今天也要努力成为Python做题家:笔算十进制转换二进制的原理和方法

    十进制

    10 = 1*10^1

    100 = 1*10^2

    1000 = 1*10^3

    二进制

    10 = 1*2^1

    100 = 1*2^2

    1000 = 1*2^3

    笔算十进制转二进制的方法

    例如将9转二进制

    9/2 = 4 余数 1 # 9除以2,余数1,最后1位为1

    4/2 = 2 余数 0 # 将上面结果再除以2,余数0,倒数第2位为0

    2/2 = 1 余数 0 # 将上面结果再除以2,余数0,倒数第3位为0

    1/2 = 0 余数 1 # 将上面结果再除以2,余数0,倒数第4位为1

    9 = 1001

    证明

    9 = 2*4+1

    9 = 2*(2*2+0) + 1

    9 = 2*(2*(2*1+0)+0)+1

    9 = 2*(2*(2*(2*0+1)+0)+0)+1

    9 = 2*2*(2*(2*0+1)+0)+2*0+1

    9 = 2*2*2*(2*0+1)+2*2*0+2*0+1

    9 = 2*2*2*2*0+2*2*2*1+2*2*0+2*0+1

    9 = 2^4*0 + 2^3*1 + 2^2*0 +2^1*0 +1

    9 = 00000 +1000 + 000 +00 +1

    9 = 1001

    '''

    # 现在开始用Python来辅助计算一下

    number = int(input('请输入要转换为二进制的数字:'))

    binary = ''

    binary_test = format(number, 'b')

    while number > 0:

    remainder = number % 2

    binary = str(remainder) + binary

    number = number // 2

    if binary == binary_test:

    print('转换结果binary:'+binary)

    #print('转换结果binary_test:' + binary_test)

    print('\n')

    '''

    二进制转换为十进制的方法

    9 = 1001

    9 = 1000 + 000 +00 +1

    9 = 1*2^3 + 0*2^2 +0*2^1 +1*2^0

    '''

    print('需要转换为二进制的数字:'+binary)

    Digits = len(binary)

    number = 0

    while Digits > 0:

    number = int(binary[-Digits])*2**(Digits-1) + number

    Digits = Digits-1

    print(f'转换结果number:{number}')

    D:\Python\Project02\bit>bit.py

    请输入要转换为二进制的数字:123

    转换结果binary:1111011

    需要转换为二进制的数字:1111011

    转换结果number:123

    D:\Python\Project02\bit>bit.py

    请输入要转换为二进制的数字:123688

    转换结果binary:11110001100101000

    需要转换为二进制的数字:11110001100101000

    转换结果number:123688

    展开全文
  • 假设一个十进制的数能够写成二进制的edcba形式那么这个十进制的数一定等于a(2^0)+b(2^1)+c(2^2)+d(2^3)+e(2^4)将以上数列除以2,所得的余数是a,商是b(2^0)+c(2^1)+d(2^2)+e(2^3)再除以二,余数为b。当这这个数不能...
    假设一个十进制的数能够写成二进制的edcba形式
    那么这个十进制的数一定等于
    a(2^0)+b(2^1)+c(2^2)+d(2^3)+e(2^4)
    将以上数列除以2,所得的余数是a,商是b(2^0)+c(2^1)+d(2^2)+e(2^3)
    再除以二,余数为b。当这这个数不能再被2除时,把所有的余数反过来写,就得到数列edcba,这既是方法也是原理

    转载于:https://www.cnblogs.com/any91/p/3447470.html

    展开全文
  •  《信息交换用汉字 编码字符集·基本集》是我国于1980年制定国家标准 GB2312-80,代号为国标码,是国家规定用于汉字信息处理使用代码依据.  GB2312-80中规定了信息交换用6763个汉字和682个非汉字图形符号...

    两个字节转成一个汉字

    1.汉字信息交换码(国标码)
      《信息交换用汉字 编码字符集·基本集》是我国于1980年制定的国家标准 GB2312-80,代号为国标码,是国家规定的用于汉字信息处理使用的代码依据.
       GB2312-80中规定了信息交换用的6763个汉字和682个非汉字图形符号(包括几种外文字母、数字和符号)的代码.
      6763个汉字又按其 使用频度、组词能力以及用途大小分成一级常用汉字3755个和二级常用汉字3008.
      一级汉字按拼音字母顺序排列;若遇同音字,则 按起笔的笔形顺序排列;若起笔相同,则按第二笔的笔形顺序排列,依次类推.所谓笔形顺序,就是横、竖、撇、点和折的顺序.二级汉字按 部首顺序排列.
     
      在此标准中,每个汉字(图形符号)采用双字节表示.每个字节只用低7,最高位恒为1.由于低7位中有34种状态是用 于控制字符,因此,只有94(128-34=94)种状态可用于汉字编码.这样,双字节的低7位只能表示94×94=8836种状态.
    
    
    编码范围
    二进制数码
    十进制数码
    基本 ASCII 码    
    0000000001111111    
    0127    
    控制字符    
    000000000010000001111111    
    032127    
    可用汉字段    
    0010000101111110    
    33126 (194)    
    扩充 ASCII 码    
    1000000011111111    
    128255    
    控制字符    
    100000001010000011111111    
    128160255    
    GB2312-80    
    1010000111111110    
    161254 (194)    
      此标准的汉字编码表有94行、94,其行号称为区号,列号称为位号.双字节中,用 高字节表示区号,低字节表示位号.非汉字图形符号置于第111,一级汉字3755个且于第1655,二级汉字3008个置于第5687.
      每个图形字符的汉字交换码,均用两个字节的低7位二进制码表示.汉字国标码通常用十六进制数表示.
      例如:“中”字的区号为 54,位号为48,计算它的二进制数和十六进制数国标码.
    
    展开全文
  • 十进制是有0到9的数字组成的,二进制则是有0,1两个数字组成,那么为什么人类的计数方式是十进制,电脑的计数方式是二进制呢,十进制和二进制的本质是什么,他们是不是有什么共同点,或者说计数方式的通用点,十进制...
  • 二进制乘法原理

    万次阅读 2015-03-21 21:29:41
    二进制乘法原理:就是左移(进位)8次,每次最高位为1则加进去,8位移完就得出乘积了实际上和我们做10进制的乘法是一样的,只不过这里的进制是2罢了比如5×6,转成二进制就是0101×0110 十进制乘法大家都会做,公式...
  • 二进制加法原理

    千次阅读 2019-03-25 12:05:25
    先把10进制的数转换成二进制 14 = 1110、 7 = 0111 第一步: 先计算不需要进位的值,做位或计算。 结果是1001 第二步: 计算需要进位的值,做位与计算。 得到110,需要进位,向左移移位就可以达到进位的...
  • 如何理解二进制计算原理

    千次阅读 2019-04-01 22:34:32
    二进制的计算本质上是补码与补码间的计算 将时钟看作一个实验的物体 时钟上的11看作是二进制中的七个一:1111111 时钟上的12看作是二进制中的七个零:0000000 以连接时钟上12与6的线为对称轴 一个正数的相反数=该...
  • 从最低位(最右)算起,位上的数字乘以本位的权重,权重就百是2的第几位的位数减一次方。 比如第2位就是2的(2-1次)方,就是2;...把二进制的数从右往左,三位一组,不够补0 列:111=4+2+1=7 11001拆
  • 二进制格雷码与自然二进制互换原理doc,二进制格雷码与自然二进制互换原理
  • 二进制补码计算原理详解

    万次阅读 多人点赞 2018-07-03 17:34:54
    二进制负数在计算机中采用补码方式表示。很多人很好奇为什么使用补码,直接使用原码表示多好,看上去更加直观和易于计算。然而事实告诉我们,这种直观只是我们人类一厢情愿罢了,在计算机看来,补码才是它们最...
  • 二进制原理

    2013-09-14 16:58:57
    二进制原理就是为了让硬件设备状态更好表示么? 可是没有了二进制,又可以用什么来表示计算机语言呢。 数字可以简化我们生活,但是也会使我们生活变得更复杂。记得以前历史老师说过,古代原始人用...
  • Java关于十进制转各种进制的原理分析及源码十进制转二进制十进制转八进制十进制转十六进制各种进制向十进制的转换 本篇文章详细到位地介绍进制之间的转换,并且附上了Java代码(其他语言类似),以便读者更好理解...
  • 8421BCD码、ASCII码、二进制码 介绍8421BCD码、ASCII码、二进制码原理以及相互之间的转换 ...由于日常生活中,人们最熟悉的数制是十进制,因此专门规定了一种二进制的十进制码,称为BCD码,它是一种以二进制表示...
  • java负数操作的二进制原理解析
  • 这个是百度百科的一个解释,是解释将一个十进制数转化为其他进制数,比如二进制和八进制的原理的解释
  • 二进制 一个字节等于8个二进制数 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 128 64 32 16 8 4 2 1 ...1代表有,0代表没有,从右往左看,八个二进制数分别代表了1,2,4...这8个二进制组合可以代表1~256当中任何一个数字...
  • 十进制:由 0~9 十个数字组成二进制:由 0和1 两个数字组成1、整数转换十进制转二进制的原理:十进制的数除以2,直到商为0,最后反向取余数。比如下图中的例子,十进制的13转为二进制表示,则为1101。十进制转二进制...
  • PHP的进制转化原理

    2019-08-04 00:26:10
    101010 二进制转化成十进制的原理即 从左起 0*0^+1*2^2+0*2*3+1*2^4+0*2^5+1*2^6 结果为 3626
  • 二进制原理浅谈

    2019-12-01 20:54:57
    比如我们熟知text,music,vedio等等最终都会转换为二进制数据存储在我们硬盘上,读取时候也是读取二进制数据。 计算机中数据存储基本单位是字节,一个字节等于8位,8位的二进制最大可以表示28-1=...
  •  原理:从二进制数字右边第一个数字开始,每个数字乘以2n次方,n从0开始依次递增1,然后将每个乘积相加,结果就是该二进制对应十进制数字。  例子:二进制数字:1011010 转换为十进制为:90  转换过程如...
  • 任何文件在计算机储存时都是以二进制储存,由 1和0 组成,如: 101010101010100111110100101010 现在有一组二进制数据: 10010110 那么他转成10进制是多少呢(我们日常生活中说数字都是10进制)答案是:150 ...
  • 从Android手机开始发布,卡顿一直是这个系统软肋,这也是用户最反感地方之一。2GB运行内存Android系统可能只相当于1GB IOS系统内存。这其中有开发者滥用权限和后台原因也有设计者本身设计所存在漏洞,...
  • 以前自己学习进制的转换这一部分的时候总是不理解十进制小数转二进制时候用到的乘基取整法的原理,在网上也没有找到自己满意的解答。最近再次学习时突然有了新的理解,以下是个人对十进制小数转二进制小数原理的一些...
  • 2019.723,这个数的二进制形式是什么样呢?让我们慢慢考虑。数字概念首先思考一下数字是什么?为什么要有数字。我有一个苹果,你脑海中会出现一个苹果。我有五个苹果,你脑海中会出现五个苹果。我有三十个苹果,你...
  • class ArrayTest { public static void main(String[] args) { ...//转化为二进制 // toOctal(26);//转化为八进制 System.out.println(Integer.toBinaryString(-6));//java为我们提供封装好转化函数

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,222
精华内容 5,288
关键字:

二进制的原理