精华内容
下载资源
问答
  • 模拟十进制数到二进制数的转换过程,以LED来模拟各个二进制位,并能以动画方式模拟计数的过程。 选择手动方式时,将8个LED变成滑动条中数字的二进制(基数2)表示。例如,如果滑动条设置为数字10(在二进制中表示为...
  • 进制转换:二进制、八进制、十六进制、十进制之间的转换 不同进制之间的转换在编程中经常会用到,尤其是C语言。 将二进制、八进制、十六进制转换为十进制 二进制、八进制和十六进制向十进制转换都非常容易,就是...

    进制转换:二进制、八进制、十六进制、十进制之间的转换

    不同进制之间的转换在编程中经常会用到,尤其是C语言。

    将二进制、八进制、十六进制转换为十进制

    二进制、八进制和十六进制向十进制转换都非常容易,就是“按权相加”。所谓“权”,也即“位权”。

    假设当前数字是N进制,那么:

    对于整数部分,从右往左看,第i位的位权等于Ni-1

    对于小数部分,恰好相反,要从左往右看,第j位的位权为N-j

    更加通俗的理解是,假设一个多位数(由多个数字组成的数)某位上的数字是1,那么它所表示的数值大小就是该位的位权。

    1) 整数部分

    例如,将八进制数字53627转换成十进制:

    53627 = 5×84 + 3×83 + 6×82 + 2×81 + 7×80 = 22423(十进制)

    从右往左看,第1位的位权为 80=1,第2位的位权为 81=8,第3位的位权为 82=64,第4位的位权为 83=512,第5位的位权为 84=4096 …… n位的位权就为 8n-1。将各个位的数字乘以位权,然后再相加,就得到了十进制形式。

    注意,这里我们需要以十进制形式来表示位权。

    再如,将十六进制数字9FA8C转换成十进制:

    9FA8C = 9×164 + 15×163 + 10×162 + 8×161 + 12×160 = 653964(十进制)

    从右往左看,第1位的位权为160=1,第2位的位权为 161=16,第3位的位权为 162=256,第4位的位权为 163=4096,第5位的位权为 164=65536 …… n位的位权就为16n-1。将各个位的数字乘以位权,然后再相加,就得到了十进制形式。

    将二进制数字转换成十进制也是类似的道理:

    11010 = 1×24 + 1×23 + 0×22 + 1×21 + 0×20 = 26(十进制)

    从右往左看,第1位的位权为20=1,第2位的位权为21=2,第3位的位权为22=4,第4位的位权为23=8,第5位的位权为24=16 …… n位的位权就为2n-1。将各个位的数字乘以位权,然后再相加,就得到了十进制形式。

    2) 小数部分

    例如,将八进制数字423.5176转换成十进制:

    423.5176 = 4×82 + 2×81 + 3×80 + 5×8-1 + 1×8-2 + 7×8-3 + 6×8-4 = 275.65576171875(十进制)

    小数部分和整数部分相反,要从左往右看,第1位的位权为 8-1=1/8,第2位的位权为 8-2=1/64,第3位的位权为 8-3=1/512,第4位的位权为 8-4=1/4096 …… m位的位权就为 8-m

    再如,将二进制数字 1010.1101 转换成十进制:

    1010.1101 = 1×23 + 0×22 + 1×21 + 0×20 + 1×2-1 + 1×2-2 + 0×2-3 + 1×2-4 = 10.8125(十进制)

    小数部分和整数部分相反,要从左往右看,第1位的位权为 2-1=1/2,第2位的位权为 2-2=1/4,第3位的位权为 2-3=1/8,第4位的位权为 2-4=1/16 …… m位的位权就为 2-m

    更多转换成十进制的例子:

    二进制:1001 = 1×23 + 0×22 + 0×21 + 1×20 = 8 + 0 + 0 + 1 = 9(十进制)

    二进制:101.1001 = 1×22 + 0×21 + 1×20 + 1×2-1 + 0×2-2 + 0×2-3 + 1×2-4 = 4 + 0 + 1 + 0.5 + 0 + 0 + 0.0625 = 5.5625(十进制)

    八进制:302 = 3×82 + 0×81 + 2×80 = 192 + 0 + 2 = 194(十进制)

    八进制:302.46 = 3×82 + 0×81 + 2×80 + 4×8-1 + 6×8-2 = 192 + 0 + 2 + 0.5 + 0.09375= 194.59375(十进制)

    十六进制:EA7 = 14×162 + 10×161 + 7×160 = 3751(十进制)

    将十进制转换为二进制、八进制、十六进制

    将十进制转换为其它进制时比较复杂,整数部分和小数部分的算法不一样,下面我们分别讲解。

    1) 整数部分

    十进制整数转换为N进制整数采用“N取余,逆序排列”法。具体做法是:

    N作为除数,用十进制整数除以N,可以得到一个商和余数;

    保留余数,用商继续除以N,又得到一个新的商和余数;

    仍然保留余数,用商继续除以N,还会得到一个新的商和余数;

    ……

    如此反复进行,每次都保留余数,用商接着除以N,直到商为0时为止。

    把先得到的余数作为N进制数的低位数字,后得到的余数作为N进制数的高位数字,依次排列起来,就得到了N进制数字。

    下图演示了将十进制数字36926转换成八进制的过程:

    http://c.biancheng.net/cpp/uploads/allimg/170915/1-1F9151J30K46.png

    从图中得知,十进制数字36926转换成八进制的结果为110076

    下图演示了将十进制数字42转换成二进制的过程:

    http://c.biancheng.net/cpp/uploads/allimg/170915/1-1F9151K641Z0.png

    从图中得知,十进制数字42转换成二进制的结果为101010

    2) 小数部分

    十进制小数转换成N进制小数采用“N取整,顺序排列”法。具体做法是:

    N乘以十进制小数,可以得到一个积,这个积包含了整数部分和小数部分;

    将积的整数部分取出,再用N乘以余下的小数部分,又得到一个新的积;

    再将积的整数部分取出,继续用N乘以余下的小数部分;

    ……

    如此反复进行,每次都取出整数部分,用N接着乘以小数部分,直到积中的小数部分为0,或者达到所要求的精度为止。

    把取出的整数部分按顺序排列起来,先取出的整数作为N进制小数的高位数字,后取出的整数作为低位数字,这样就得到了N进制小数。

    下图演示了将十进制小数0.930908203125转换成八进制小数的过程:

    http://c.biancheng.net/cpp/uploads/allimg/170918/1-1F91Q20520335.png

    从图中得知,十进制小数0.930908203125转换成八进制小数的结果为0.7345

    下图演示了将十进制小数0.6875 转换成二进制小数的过程:

    http://c.biancheng.net/cpp/uploads/allimg/170918/1-1F91QHI2I2.png

    从图中得知,十进制小数 0.6875 转换成二进制小数的结果为 0.1011

    如果一个数字既包含了整数部分又包含了小数部分,那么将整数部分和小数部分开,分别按照上面的方法完成转换,然后再合并在一起即可。例如:

    十进制数字 36926.930908203125 转换成八进制的结果为 110076.7345

    十进制数字 42.6875 转换成二进制的结果为 101010.1011

    下表列出了前17个十进制整数与二进制、八进制、十六进制的对应关系:

    十进制

    0

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    二进制

    0

    1

    10

    11

    100

    101

    110

    111

    1000

    1001

    1010

    1011

    1100

    1101

    1110

    1111

    10000

    八进制

    0

    1

    2

    3

    4

    5

    6

    7

    10

    11

    12

    13

    14

    15

    16

    17

    20

    十六进制

    0

    1

    2

    3

    4

    5

    6

    7

    8

    9

    A

    B

    C

    D

    E

    F

    10

    注意,十进制小数转换成其他进制小数时,结果有可能是一个无限位的小数。请看下面的例子:

    十进制0.51对应的二进制为0.100000101000111101011100001010001111010111...,是一个循环小数;

    十进制0.72对应的二进制为0.1011100001010001111010111000010100011110...,是一个循环小数;

    十进制0.625对应的二进制为0.101,是一个有限小数。

    二进制和八进制、十六进制的转换

    其实,任何进制之间的转换都可以使用上面讲到的方法,只不过有时比较麻烦,所以一般针对不同的进制采取不同的方法。将二进制转换为八进制和十六进制时就有非常简洁的方法,反之亦然。

    1) 二进制整数和八进制整数之间的转换

    二进制整数转换为八进制整数时,每三位二进制数字转换为一位八进制数字,运算的顺序是从低位向高位依次进行,高位不足三位用零补齐。下图演示了如何将二进制整数 1110111100 转换为八进制:

    http://c.biancheng.net/cpp/uploads/allimg/170919/1-1F919102I0949.png

    从图中可以看出,二进制整数 1110111100 转换为八进制的结果为 1674

    八进制整数转换为二进制整数时,思路是相反的,每一位八进制数字转换为三位二进制数字,运算的顺序也是从低位向高位依次进行。下图演示了如何将八进制整数 2743 转换为二进制:

    http://c.biancheng.net/cpp/uploads/allimg/170919/1-1F919103A2R7.png

    从图中可以看出,八进制整数 2743 转换为二进制的结果为 10111100011

    2) 二进制整数和十六进制整数之间的转换

    二进制整数转换为十六进制整数时,每四位二进制数字转换为一位十六进制数字,运算的顺序是从低位向高位依次进行,高位不足四位用零补齐。下图演示了如何将二进制整数 10 1101 0101 1100 转换为十六进制:

    http://c.biancheng.net/cpp/uploads/allimg/170919/1-1F919104H9539.png

    从图中可以看出,二进制整数 10 1101 0101 1100 转换为十六进制的结果为 2D5C

    十六进制整数转换为二进制整数时,思路是相反的,每一位十六进制数字转换为四位二进制数字,运算的顺序也是从低位向高位依次进行。下图演示了如何将十六进制整数 A5D6 转换为二进制:

    http://c.biancheng.net/cpp/uploads/allimg/170919/1-1F91910553H50.png

    从图中可以看出,十六进制整数 A5D6 转换为二进制的结果为 1010 0101 1101 0110

    C语言编程中,二进制、八进制、十六进制之间几乎不会涉及小数的转换,所以这里我们只讲整数的转换,大家学以致用足以。另外,八进制和十六进制之间也极少直接转换,这里我们也不再讲解了。

    展开全文
  • 主要介绍了使用Python内置函数:bin()、oct()、int()、hex()可实现进制转换的一些用法,需要的朋友可以参考下
  • 我们看到所转换的2进制数按底位到高位的顺序产生的,而通常的输出是从高位到低位的,恰好与计算过程相反,因此转换过程中每得到一位2进制数则进栈保存,转换完毕后依次出栈则正好是转换结果。 请实现其算法。
  • labview 十进制转换为二进制,比较简单的一种方法,还可以用在其他方面
  • 十进制负数转二进制的方法步骤

    千次阅读 2018-12-29 18:13:25
    步骤一: 使用该负数的绝对值(负数的绝对值为正数)二进制位 步骤二:二进制位按位取反 步骤三:取反后的二进制位+1 实例:-11 步骤一:正数11的二进制位为 00001011 步骤二:按位取反后的二进制位为 ...

    步骤一: 使用该负数的绝对值(负数的绝对值为正数)转成二进制位

    步骤二:二进制位按位取反

    步骤三:取反后的二进制位+1

    实例:-11

    步骤一:正数11的二进制位为 00001011

    步骤二:按位取反后的二进制位为 11110100

    步骤三:取反后的二进制位+1为 11110101

    结果:-11的二进制位表示为 11110101

    展开全文
  • “除以2”的过程,得到的余数是从低到高的次序,而需要的带的输出是从高位到低位(35对应的二进制是100011),因此需要一个栈来反转次序 from pythonds.basic.stack import Stack def divideBy2(decNumber): ...
  • 十进制小数转二进制matlab代码SAR ADC的数字校准 逐次逼近寄存器(SAR)ADC数字校准 概述 代码 该代码部分包含: 可执行文件(),用于自动测试ADC模型并输出其动态性能以及平均能耗。 Liu等人提出的一种流行的SAR ...
  • 二进制转换十进制一个二进制数转换为十进制数,是比较简单的,其方法就是用每一个位置上的数字乘以该位置的权重,然后相加得到。举个例子,二进制的1010转换为十进制的话,从其最后面一位0开始,一直往前,其权重...

    03218e0a-4213-eb11-8da9-e4434bdf6706.png

    二进制是在计算机中常用的一种进制数,其数据用0和1两个数码来表示数据。我们人类常用的是十进制,那么二进制和十进制之间是有一个转换方法的。

    二进制转换十进制

    一个二进制数转换为十进制数,是比较简单的,其方法就是用每一个位置上的数字乘以该位置的权重,然后相加得到。举个例子,二进制的1010转换为十进制的话,从其最后面一位0开始,一直往前,其权重依次为2º、2¹、2²、2³,所以这个数转换为十进制就是0×2º+1×2¹+0×2²+1×2³=9.如果出现小数怎么办?方法一样,小数部分的每一位也有其权重,小数点后第一位权重为2的负一次方,2的负二次方以此类推例如:二进制的1.01转换为十进制就是1.25。

    十进制转换为二进制

    十进制转换为二进制是稍微有点复杂的过程,需要分为整数和小数两部分。整数部分用“除以二取余”的方法。具体说就是用短除法的形式让十进制的数除以二,将其每次的余数依次写下来,就是二进制的数,如十进制的26变为二进制的话,如图。

    04218e0a-4213-eb11-8da9-e4434bdf6706.png

    所以十进制的26变为二进制就是11010。对于小数部分,采用的是“乘以二取整”的方法。具体来说就是把小数部分拿出来,乘以2,得到的数把整数部分留下,小数部分继续乘2,得到的数继续进行这样的运算,直到小数部分为0或者取到足够的位数.然后将每次计算的整数部分依次写下来就是二进制下的该数字。计算如图。

    05218e0a-4213-eb11-8da9-e4434bdf6706.png

    当然,也会出现循环的情况,比如十进制下的0.2转换二进制时就会出现0011循环的情况,这个时候就是十进制的0.2转换为二进制的话就是(0.001100110011......).

    所以在十进制下的26.625就是二进制下的11010.101。

    二进制八进制,十六进制

    其实除了二进制,十进制之外,我们还会见到八进制,十六进制,它们与二进制的关系非常密切。我们能够看到8是2的三次方,16是2的四次方,所以一个八进制为相当于3个二进制位;一个16进制位相当于4个二进制位。

    举个例子,当我们将八进制下的26转换为二进制时,我们可以把2和6两个数字拆开来看,6相当于二进制的110, 2相当于二进制下的010,所以八进制下的26相当于二进制下的010110,最高位0可以省去,就是10110.这样我们就把八进制的一个数转换为二进制。

    二进制转换为八进制也简单,就是三个二进制位是一个八进制为。举个例子,二进制下的11001转换时,可以这样看011 001,这样就可以分别计算011相当于0×2²+1×2¹+1×2º=3,001相当于1,。所以转换为八进制就是31。这里需要注意的一点是计算加法时要做到满8进1,因为八进制下不可能出现比8大的数字。

    十六进制的转换类似,不过是一个十六进制位相当于4个二进制位。十六进制中就有了ABCDEF表示10 11 12 13 14 15。

    这就是关于二进制的各种转换问题,当然,这里讨论的都是正数,负数问题需要跟进一步讨论。因为对于负数在二进制里有相应的表示方法,这里就不过多赘述了。

    展开全文
  • 好多年前学过十进制转二进制的笔算过程,不过一直都没机会用上,很快就忘记了,最近因工作原因有几次需要做进制转换的计算,懒得上网查就根据记忆中模糊的印象瞎推导,搞着搞着就搞出了这样的推导方式,如图: ...

    好多年前学过十进制转二进制的笔算过程,不过一直都没机会用上,很快就忘记了,最近因工作原因有几次需要做进制转换的计算,懒得上网查就根据记忆中模糊的印象瞎推导,搞着搞着就搞出了这样的推导方式,如图:

    最右边的是需要转换的十进制数123、8,每一个左边的数是右边数除以2后得到的正整数,每一个下边的数其实不用太关注,但是偏偏又不能轻易忽略(因为当横线上面的数除以2之后,除得尽的话就是0,除不尽的话就是1),直到左边为1.

    所以这个计算过程就是

    1、以最右边横线上方的十进制数值a1为起点;

    2、若a1除以2能除尽的话,则a1下边的数值a2为0,否则a2为1;

    3、a1左边a3等于(a1-a2)/2;

    4、若此时a3小于1,则计算结束(结果为最左边的数和所有下边的数逐个拼起来),否则以此时的a3作为新的a1套入步骤1234中。

    呵呵,刚写到这里就忽然发现假如将上面步骤1234中的2换成了其他 - _ - b......貌似也可以呵。呵呵!嗝!

    过几天我发个进制转换代码出来。

    对比之后发现,虽然跟学校老师教的差别不大,怎么说呢,起码不需要将结果反过来串起,好歹也算是自己的一份小成绩,发文记录一下。

    展开全文
  • 十进制转二进制原理

    2021-04-22 19:11:58
    1. 十进制整数转二进制 假设十进制正整数值为A,对应的二进制数为abcde。 众所周知,二进制数换算为十进制的公式如下: A = a(2^4) + b(2^3) + c(2^2) + d(2^1) + e(2^0) 所以咱们只要把a,b,c,d,e都取出来就能...
  • 二进制 转换过程 A(十六进制) = 1010(二进制)=10(十进制) B(十六进制) = 1011(二进制)=11(十进制) C(十六进制) = 1100(二进制)=12(十进制) D(十六进制) = 1101(二进制)=13(十进制) E(十六进制) = 1110(...
  • #include <stdio.h> int main(void) { int i,j; int n; int a[32]; scanf("%d",&n); for(i=0;n>0;i++) { a[i]=n%2; n/=2; } for(j=i-1;j>=0;j--) printf("%d",a[j]);...}
  • 十进制转二进制 十进制整数转二进制 十进制整数转换成二进制采用“除2倒取余”,十进制小数转换成二进制小数采用“乘2取整”。 例题: 135D = __ B 解析:如下图所示,将135除以2,得余数,直到不能整除,然后再...
  • 十进制数转换为二进制数 C++前言一、... 设目标十进制数为n,用短除法一直除以2,循环这个过程并记录余数,当商为0时结束循环,余数从后往前读就是转换为的二进制数 eg: 二、代码实现 1.设计转换函数transfer // ..
  • 十进制转二进制

    千次阅读 2019-08-31 00:00:56
    由于十进制存在整数和小数的情况,在转二进制时,一般是先计算整数部分,再计算小数部分,再加以合并。 二)十进制转二进制 整数位转换原理:十进制转二进制采用“除2取余,逆序排列”法。 例如:把十进制11...
  • 1、计算机的数制介绍 数制:计数的方法,指用一组固定的符号和统一的规则来表示数值的方法 数位:指数字符号在一个数中所处的位置 基数:指在某种进位计数制中,数位上所能使用...4.1、正整数的十进制转换二进制...
  • 将二进制、八进制、十六进制转换为十进制二进制、八进制和十六进制向十进制转换都非常容易,就是“按权相加”。所谓“权”,也即“位权”。假设当前数字是N进制,那么:对于整数部分,从右往左看,第 i 位的位权等于...
  • C++十进制数转换为二进制表示的算法C++十进制数转换为二进制表示的算法完整源码(定义,实现,main函数测试) C++十进制数转换为二进制表示的算法完整源码(定义,实现,main函数测试) #include <iostream> ...
  • 二进制转十进制.py

    2020-04-29 10:17:09
    学习python基础过程中的实例及问题,主要是python学习手册第五版内容已经遇到的其他有趣的实例,在此分享。如有侵权,联系删除
  • 汇编语言:将ASCⅡ码表示的十进制数转换为二进制数/十六进制数 你们好! 这是我的第一个汇编程序的博客,汇编是一个神奇的东西,你深入了解他之后会为他着迷的!!! 题目 将ASCⅡ表示的十进制数字转化为二进制数,...
  • 用除取余法。具体步骤如下: (1)将该数除以2,得到商和余数。 (2)将商作为被除数,并除以2,得到新的商和余数。 (3)重复执行(2),直到商为0为止。将余数反过来排列即为所求。 code: #include<...
  • 【C语言】十进制转换二进制

    千次阅读 2021-06-25 09:35:40
    本题要求实现一个函数,将正整数n转换为二进制后输出。 函数接口定义: void dectobin( int n ); 函数dectobin应在一行中打印出二进制的n。建议用递归实现。 裁判测试程序样例: #include <stdio.h> ...
  • 十进制想要用二进制需要使用其他方式,先看下转化步骤。 10进制数除以n得到商依次除以n,直到商为0,然后将所有余数倒序排列(“除 N 取余,逆序排列) 以整数42转化为二进制为例 因此,刚好可以利用栈的“先进...
  • 十进制浮点数转二进制浮点数计算规则 (1)单精度二进制浮点数存储格式如下图: 那么一个单精度十进制浮点数转二进制浮点数的规则是如何的呢?假设这里有一个小数为3.625,那么该小数对应的整数部分就是11,...
  • //十进制转二进制 Console.WriteLine("十进制166的二进制表示: "+Convert.ToString(166, 2)); //十进制转八进制 Console.WriteLine("十进制166的八进制表示: "+Convert.ToString(166, 8)); //十进制转十六进制 ...
  • 二进制 二进制就是计算机常用的进制,即逢二进一。例如:1010 八进制 八进制即逢八进一。例如:626 十进制 ...十进制就是我们在计算中常用的进制,...1.二进制转八进制 拿二进制数10010110举例 首先需要3个二进...
  • c#十进制转二进制原理

    千次阅读 2019-01-22 17:44:27
    十进制:0 1 2 3 4 5 6 7 8 9 二进制:0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1 = 1 * 100 13 = 3 * 100 + 1 * 101 213 =3 * 100 + 1 * 101 + 2 * 102 3214 =4 * 100 + 1 * 101 + 2 * ...
  • 前言:接触计算机的同学学习基础课程时,不免会碰到十进制转二进制 / 八进制 / 十六进制这种问题。常见的方法有“除以2/8/16看余数”。本文在介绍方法的前提上,对其数学原理进行了通俗的解释。 二进制十进制 ...
  • 二进制、八进制、十六进制转换为十进制 二进制、八进制和十六进制向十进制转换都非常容易,就是“按权相加”。所谓“权”,也即“位权”。 假设当前数字是 N 进制,那么: 对于整数部分,从右往左看,第 i 位的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 199,714
精华内容 79,885
关键字:

十进制108转二进制过程