• bcd二进制转十进制Prerequisite: Number systems 先决条件： 数字系统 BCD Code (8421 Code): In BCD 8421 code, each decimal digit is represented using a 4-bit binary number. The 4-bit binary numbers ...

bcd码二进制转十进制
Prerequisite: Number systems
先决条件： 数字系统
BCD Code (8421 Code): In BCD 8421 code, each decimal digit is represented using a 4-bit binary number. The 4-bit binary numbers have their weights attached as 8, 4, 2, 1 from MSB to LSB side. Since the weights are attached to it comes in the category of weighted codes and is also sequential.
BCD代码(8421代码) ：在BCD 8421代码中 ，每个十进制数字均使用4位二进制数表示。 从MSB到LSB，4位二进制数的权重分别为8、4、2、1。 由于权重是附加的，因此它属于加权代码类别，并且是顺序的 。
In a digital system that accepts only binary numbers in form of 0 and 1, the only way to interpret decimal numbers is its conversion from decimal to binary and vice-versa which is a slow process and it also requires a huge electronic circuitry. So, we use BCD numbers. Also, the sequential nature of BCD numbers makes it advantageous for performing arithmetic operations.
在仅接受0和1形式的二进制数字的数字系统中，解释十进制数字的唯一方法是将其从十进制转换为二进制，反之亦然，这是一个缓慢的过程，并且还需要庞大的电子电路。 因此，我们使用BCD号码。 而且，BCD编号的顺序性质使其在执行算术运算时具有优势。
Although, there are many advantages there are some disadvantages too such as:
尽管有很多优点，但也有一些缺点，例如：
BCD codes are more inefficient than usual binary codes. Usually, in binary numbers, we represent (13)10 = (1101)2 i.e., we require 4-bits but in BCD notation (13)10 is represented as (0001 0011). Here, we require 8-bits to represent the same 13.
BCD代码比普通的二进制代码效率低。 通常，在二进制数中，我们表示(13) 10 =(1101) 2，即，我们需要4位，但在BCD表示法中， (13) 10表示为(0001 0011) 。 在这里，我们需要8位来表示相同的13 。
Another disadvantage is that arithmetic operations become more complex as compared to the usual binary numbers because, in BCD numbers, we have 6 illegal states as 1010, 1011, 1100, 1101, 1110 and 1111 which are not part of 8421 BCD system.
另一个缺点是，与通常的二进制数相比，算术运算变得更加复杂，因为在BCD数中，我们有6个非法状态，例如1010、1011、1100、1101、1110和1111 ，它们不是8421 BCD系统的一部分。
The following table describes the relation between Decimal, Binary and 8421 BCD numbers.
下表描述了十进制，二进制和8421 BCD编号之间的关系。

Decimal NumbersBinary Numbers8421 BCD Numbers0000000001000100012001000103001100114010001005010101016011001107011101118100010009100110011010100001 00001110110001 00011211000001 00101311010001 00111411100001 01001511110001 0101...........................
小数  二进制数  8421 BCD编号  0  0000  0000  1个  0001  0001  2  0010  0010  3  0011  0011  4  0100  0100  5  0101  0101  6  0110  0110  7  0111  0111  8  1000  1000  9  1001  1001  10  1010  0001 0000  11  1011  0001 0001  12  1100  0001 0010  13  1101  0001 0011  14  1110  0001 0100  15  1111  0001 0101  ...  ...  ...  ...  ...  ...  ...  ...  ...

Example 1: Represent (28)10 and (53)10 in 8421 BCD notation
示例1：以8421 BCD表示法表示(28) 10和(53) 10
Solution:
解：
(28)10 in BCD notation can be represented as (0010 1000).
(28) BCD表示法中的10可以表示为(0010 1000) 。
Similarly, (53)10 in BCD notation can be represented as (0101 0011).
类似地，BCD表示法中的(53) 10可以表示为(0101 0011) 。
The addition of BCD numbers is slightly different from binary addition. Here, the rules of binary addition are partially applicable only to the individual 4-bit groups. The BCD addition, is thus carried out by individually adding the corresponding 4-bit groups starting from the LSB side and if there is a carry to the next group, or if the result belongs to any of the 6 illegal states than we add 610(0110) to the sum term of that group and resulting carry is added in the next group.
BCD编号的加法与二进制加法略有不同。 在此，二进制加法规则仅部分适用于各个4位组。 因此， BCD加法是通过从LSB端开始逐个添加对应的4位组来进行的，如果下一个组有进位，或者结果属于6个非法状态中的任何一个，则我们加6 10 (0110)至该组的总和，并在下一组中添加产生的进位。
Example: Perform BCD Addition of 6 and 7.
示例：执行6和7的BCD加法。
Solution: BCD representation of 6 is given as 0110 and for 7 it is 0111.
溶液：6 BCD表示被给定为0110和7是0111。

When we add 6 and 7 in BCD, we get 1101 which is an invalid state therefore, we add 0110 (6) to the sum to get correct result which is 0001 0011 (13).
当在BCD中将6和7相加时，我们得到1101 ，这是一个无效状态，因此，我们将0110(6)添加到总和中以获得正确的结果0001 0011(13) 。
Example 2: Perform BCD Addition of 8765 and 3943.
示例2：执行8765和3943的BCD加法。
Solution:
解：
BCD representation of 8765 is given as 1000 0111 0110 0011 and for 3943 it is 0011 1001 0100 0011.
BCD表示的8765为1000 0111 0110 0011，3943为0011 1001 0100 0011 。

Firstly, we will perform a normal binary addition of two numbers now we see 1100 and 1010 which are illegal states also the third group of 4-bits from LSB side i.e., 0000 has a carry 1 to the next group. So, for correction, we have to add 0110 to all three groups. Thus, we get the correct result as 0001 0010 0111 0000 1000 which is equivalent to (12708)10 in decimal number system and this is what we get on adding (8765)10 + (3943)10 = (12708)10. Hence, our result is also verified.
首先，我们将对两个数字进行正常的二进制加法运算，现在我们看到1100和1010是非法状态，也是从LSB侧开始的第三组4位，即0000的进位为1 。 因此，为了更正，我们必须在所有三个组中添加0110 。 因此，我们得到正确的结果为0001 0010 0111 0000 1000 ，它等于十进制数系统中的(12708) 10 ，这就是我们加上(8765) 10 +(3943) 10 =(12708) 10的结果 。 因此，我们的结果也得到了验证。

bcd码二进制转十进制

展开全文
• 在书上看到二进制转换格雷的方法，一开始看不懂，就去百度上搜索，结果篇没有找到介绍书上的那个方法的文章。后来自己看懂了于是写这篇博客。 奇校验与偶校验 数据在传输的过程中可能会出现错误，所以通常在二...


文章目录
二进制转换格雷码奇校验与偶校验偶校验奇校验
格雷码

二进制转换格雷码
在书上看到二进制转换格雷码的方法，一开始看不懂，就去百度上搜索，结果篇没有找到介绍书上用的那个方法的文章。后来自己看懂了于是写这篇博客。
奇校验与偶校验
数据在传输的过程中可能会出现错误，所以通常在二进制编码中额外加上一个校验位（parity bit），用于示编码中1的个数是奇数还是偶数。主要有奇校验与偶校验两种方法。一般应用中只需要采用奇偶校验中的一种，偶校验用得更广泛。
偶校验
对于偶校验（even parity）来说，当字符编码中1的个数为偶数时校验位为0｡

100 0001 其中有两个1所以校验位为0 所以编码为0100 0001

101 0100 其中有了个1所以校验位为1 所以编码为1101 0100

奇校验
对于奇校验（odd parity）来说，当字符编码中1的个数为奇数时，校验位为0｡

100 0001 其中有两个1,为偶数个，所以校验位为1 所以编码为1100 0001

101 0100 其中有三个1,为奇数个，所以校验位为0 所以编码为0101 0100

格雷码
对于n（n必须为偶数）位二进制表示的计数序列来说，首先对前n/2个二进制进行编码，设目的格雷码的左边最高位为0，然后往右的各位由原二进制编码的每一位与它左边相邻位的偶校验构成。接着，将已构成的格雷码序列按逆序排列，并将左边最高位设为1,这样就构成了原序列中的后n/2个二进制编码所对应的格雷码序列。
以BCD码为例： 首先对前5个二进制编码 以0100为例： 设左边最高位为0, 0100中的第2位数字1与0构成二进制码01,有1个1,为奇数个，所以偶校验为1,所以格雷码第二位为1｡ 同理，0100中的第2位数字1与第3位数字0构成二进制编码10,其偶校验为1｡ 0100中第3数字0与第4位数字0构成二进制编码00,其偶校验为0｡ 所以0100的格雷码为0110 用这种方法就可得前5个格雷码为0000、0001、0011、0010和0110 将前5个格雷码逆序排列 可得0110、0010､0011、0001､0000 将左边最高位设为1 即可得到后5个格雷码为1110､1010､1011､1001、1000

参考书目：《逻辑与计算机设计基础》

展开全文
• 1.将十进制转换成二进制数 十进制浮点数，整数部分转换成二进制，采用除2取余法，将余数从低到高排列，即为整数的二进制数； 小数部分转换成二进制，采用乘2取整法，将取整数顺序排列，即为小数的二进制数。 ...
十进制数与IEEE 754 32 位转换实例讲解
https://blog.csdn.net/qq_41629142/article/details/83692106

https://blog.csdn.net/a627088424/article/details/9173831
https://blog.csdn.net/u011822516/article/details/83098872
无符号数和有符号数（一） -- 原码表示法和补码表示法

有符号数和无符号数之间的转换
https://blog.csdn.net/walkmaner/article/details/88556110

https://blog.csdn.net/archersaber39/article/details/51422602/
将20.163转换成754标准的32位浮点数
1.将十进制数转换成二进制数
十进制浮点数，整数部分转换成二进制，采用除2取余法，将余数从低到高排列，即为整数的二进制数；
小数部分转换成二进制，采用乘2取整法，将取整数顺序排列，即为小数的二进制数。
小数部分乘2直到小数部分为0，或取到想要的位数，或循环出现前。
整数部分
20/2=10    ....  0
10/2=5      ....  0
5/2=2        ....  1
2/2=1        ....  0
1/2=0         ..... 1
小数部分
0.163*2=0.326        0
0.326*2=0.652        0
0.652*2=1.304        1
0.304*2=0.608        0
0.608*2=1.216        1
0.216*2=0.432        0
0.432*2=0.864        0
0.864*2=1.728        1
0.728*2=1.456        1
0.456*2=0.912        0
不要求精度时，通常取到8~10位
20.163=10100.0010100110
2.移动小数点到第1、2位之间，得e的值
10100.0010100110=1.01000010100110 *2的4次方    e=4（小数点移动4位）
3.求出S、E、M的值
S=0，E=4+127=131，M=01000010100110
S由小数点的后一位可以看出，0为正数，1为负数。
0  1000001 01000010100110000000000
IEEE754标准中32位浮点数表示
S         E               M
S是符号位占1位，E是阶码占8位，M是尾数占23位。

当尾数的值不为0时，尾数的最高有效位应为1，这称为浮点数的规格化表示
这样形式的叫规格化

新手初学，有问题或者错误，麻烦评论下 留言指正，谢谢

//------------------------------------------  第二部分 ----------------------------------------------------------//
将（32位）16进制IEEE-754标准浮点数就是用十六进制表示浮点，称为单精度浮点数。 举例：已知一个数为2.5，IEEE-754标准浮点数表示为 40200000H。 16进制浮点数与十进制的转化步骤： 对于大小为32-bit的浮点数（32-bit为单精度，64-bit浮点数为双精度，80-bit为扩展精度浮点数）， 1、其第31 bit为符号位，为0则表示正数，反之为复数，其读数值用s表示； 2、第30～23 bit为幂数，其读数值用e表示； 3、第22～0 bit共23 bit作为系数，视为二进制纯小数，假定该小数的十进制值为x； 则按照规定，该浮点数的值用十进制表示为：＝ (-1)^s * (1 + x) * 2^(e - 127)
例如：对于16进制浮点数49E48E68H来说， 1、其第31 bit为符号位，为0则表示为正数； 2、第30～23 bit依次为100 1001 1，读成十进制就是147，即e = 147。 3、第22～0 bit依次为110 0100 1000 1110 0110 1000，也就是二进制的纯小数0.110 0100 1000 1110 0110 1000，其十进制形式为0.78559589385986328125，即x = 0.78559589385986328125。即x = 0.78559589385986328125。
可知：16进制浮点数49E48E68H的10进制表示： =(-1)^s * (1 + x) * 2^(e - 127) =(-1)^0 * (1+ 0.78559589385986328125) * 2^(147-127) = 1872333。 计算结果可以用以下计算器验证： 16进制(浮点数)转10进制,IEEE-754标准浮点数在线计算器：https://www.23bei.com/tool-23.html 10进制(浮点数)转16进制,IEEE-754标准浮点数在线计算器：https://www.23bei.com/tool-15.html
C语言参考代码（1）：
uint32_t data2hex(uint16_t data)
{
uint32_t temp;
uint8_t i=0;

temp = data;//转存需要计算的数值
while(temp)
{
temp >>= 1;
i++;//计算当前值的尾数占有的位数
}
i--;//计算下来，i会多加一次，这儿减掉
temp = data;  //再次赋值，准备合并
temp = temp<<(23-i);//补足23位尾数
temp = (i+127)<<23 | temp;//计算指数，并与尾数合并起来
temp = temp & ~(1<<23);//确定正负  我这儿都是正数，就没管负数了

return temp;//这里就已经是以浮点数的存储方式表示的传进来的参数了
}


C语言参考代码（2）：
float   floatVariable="0";
unsigned char  i;
void   *pf;
pf   =&floatVariable;
(unsigned char) * px = charArray;
for(i=0;i<4;i++)
{
*(((unsigned char)*)pf+i)=*(px+i);
}   
展开全文
• 把dbef6e8a转换十进制 3689901706 原ip 192.168.158.1 转换为十六进制: c0 a8 9e 01 注意这里是01。规则所限，ip的每一段必须转为两位的十六进制数，所以原本的1写成01 把c0a89e01转换十进制 3232275969...
原ip：219.239.110.138
把这四个数字分别转换为十六进制: db ef 6e 8a
把dbef6e8a转换为十进制 3689901706

原ip 192.168.158.1
转换为十六进制: c0 a8 9e 01    注意这里是01。规则所限，ip的每一段必须转为两位的十六进制数，所以原本的1写成01
把c0a89e01转换为十进制 3232275969
展开全文
• 不应该==号来判断浮点数是否相等,因为存在一个精度的问题 首先说一下原,反,补,移码. 移码其实就等于补码,只是符号相反. 对于正数而言,原,反,补码都一样, 对负数而言,反码除符号位外,在原码的基础上按位取反,补码...
• 什么IP地址，什么子网掩码，什么网路地址，什么广播地址都会用到二进制和十进制的相互转化，而且最常用的是8位二进制数一组的转化，这就来总结相互转化最快的方法。  首先来认识标准分类的IP地址：  IP地址是由...
• 十进制是逢十进一，十六进制是逢十六进一，二进制就是逢二进一，以此类推，x进制就是逢x进位。 二进制 也就是计算机硬件使用的进制 8个这样的信号来表示一个数据，这个数据的单位叫做：字节 1 byte = 8 bit ...
• 进制码转换为格雷码的方法 格雷码转换为二进制码的过程 更多一点讨论之generate for 更多一点讨论之for 最后对格雷码的介绍 前言 以前的博客也有写这方面的内容，只是没有显式的命名，导致查找复习的时候并...
• 位（bit）：表示二进制位，位...（通常1个字节可以存放一个ASCII， 2个字节可以存放一个汉字国标） 字：是指计算机进行数据处理时，一次存取、加工和传送的数据长度。一个字通常由一个或多个字节构成。 字长...
• 8421BCD人性化的存在计算机内毫无例外地都使用进制进行运算，但通常采用8进制和十六进制的形式读写。对于计算机技术专业人员，要理解这些数的含义是没问题，但对非专业人员却不那么容易的。由于日常生活中，...
• 值类型的实例通常是在线程栈上分配的（静态分配），但是在某些情形下可以存储在堆中 d. 值类型总是分配在它声明的地方：作为字段时，跟随其所属的变量(实例)存储；作为局部变量时，存储在栈上。栈的内存是自...
• 十六进制颜色就是在软件中设定颜色值的代码。在很多软件中，都会遇到设定颜色值的问题，发展来源人的眼睛看到的颜色有两种：一种是发光体发出的颜色，比如计算机显示器屏幕显示的颜色；另一种是物体本身不发光，...
• ## 二进制转BCD码（8421）

万次阅读 多人点赞 2018-12-02 15:48:52
在显示温度、电压、电流等数据时，通常需要将二进制数据转成十进制进行显示。最常用的方法是将二进制码转换成BCD码（8421）。  8421码：它只选用了四位二进制码中前10组代码，即0000~1001分别代表它所对应的...
• 日常生活中一般采用十进制进行计数和计算，但十进制数难以在计算机内直接存储与运算。在计算机系统中，通常十进制数作为人机交互的媒介，而数据则以二进制数的形式存储和运算。 计算机采用二进制的主要原因有...
• 目前，检测位置的办法有两种：其一是使用位置传感器，测量到的位移量由变送器经A/D转换成数字量送至系统进行进一步处理。此方法精度高，但在多路、长距离位置监控系统中，由于其成本昂贵，安装困难，因此并不实用；...
• 1、第二章：数据的表示和运算通过下面的思维导图来依次分享「数据的表示和运算」里面重要知识点。2、第一节：数制与编码1....3. BCD：二进制的十进制数（Binary-coded Decimal,BCD）通常采用4位二进...
• 在上一篇文章中介绍了数码管如何在FPGA开发板上实现动态显示，其文章链接如下：人生状态机：[走近FPGA]之数码管动态显示​zhuanlan.zhihu.com本文的所有实例都使用硬木课堂Xilinx Aritx 7 FPGA板实现，且附有上板...
• 通常在显示温度、数码管、电压等数据时，通常需要将二进制数据转成十进制进行显示。最常用的方法是将二进制码转换成BCD码（8421）。 8421码：它只选用了四位二进制码中前10组代码，即0000~1001（0-9）分别代表它所...
• 十六进制颜色与RGB颜色值的转换 十六进制颜色 十六进制颜色就是在软件中设定颜色值的代码。在很多软件中，都会遇到设定颜色值的问题，发展来源人的眼睛看到的颜色有两种: 一种是发光体发出的颜色，比如...
• 转换，二进制
• 二进制编码的十进制计算是该平台上的默认设置，这使其通常适合于构建会计软件并将结果存储在数据库中。 Borland C ++编译器 (The Borland C++ Compiler) Upto the point where Borland sold their C++ compiler to ...
• 我们通常会把所需的信息类型（如：字符串等）转化成为二进制码流以方便进行数据的串行传送，我们在通信的仿真中，常使用Matlab软件进行通信原理的仿真，下面介绍以matlab语言为基础的数据类型转换。 1 进制向量转换...
• ## 数位进制转换详解

千次阅读 2021-01-16 20:24:26
二进制和十进制互相转换 十进制 → 二进制 方法一 十进制数：3765，如何转换成二进制数？ 第一步，写出二进制的权数如下： 第十二位 第十一位 第十位 第九位 第八位 第七位 第六位 第五位 第四位 第三位 第二位 ...
• Verilog常见编码方式有：二进制码、格雷、独热；三种编码方式各有特点利弊，因此有必要理解比较，以求不同场合的合理选择： 目录 一、结论： 二、详细了解 二进制码 格雷 独热 比较 三、参考 一、...
• 制 || BCD || 格雷 || 奇偶校验 || 字母数字1 二—十进制码(BCD)你好，我们已经知道，数字系统一般采用二进制进行运算，但人们习惯采用十进制进行读写，因此需要对十进制进行二进制编码，从而提供与二...
• 进制转换十进制二进制二进制转十进制十进制转二进制：十进制转二进制：二进制转八进制：二进制转十六进制：3.信息在计算机中的表示整数部分（定点数）小数部分（浮点数）文字符号的表示4. 原码，反码、补码5. java...
• 本文对Python的编码知识做了更深入一些的研究，将字符编码以及不同进制的关系梳理一下，最后也谈到了emoji的输出问题。

...