十进制28转换成8421BCD码,求过程

如题所述

#include<iostream.h>

class convert{

int a[16],b;

public:

convert(){

for(int i=0;i<16;i++)

a[i]=0;

};

void input();

void cal();

void output();

};

void convert::input(){

cout<<"Please input a number:";

cin>>b;

cout<<"OCT:"<<b<<endl;

}

void convert::cal(){

for(int i=15;i>=0;i--){

if(b==1){a[i]=1;break;}

a[i]=b%2;

b/=2;}

}

void convert::output(){

cout<<"BIN:";

for(int i=0;i<16;i++)

cout<<a[i];

}

void main(){

convert instance;

instance.input();

instance.cal();

instance.output();

}

8421码转十进制数 

如,从时钟芯片中读出的时间数据,需转换为十进制数。

unsigned char bcd_to_hex(unsigned char data)

{

unsigned char temp;

temp = ((data>>4)*10 + (data&0x0f));

return temp;

}

扩展资料:

include用法:

#include命令预处理命令的一种,预处理命令可以将别的源代码内容插入到所指定的位置;可以标识出只有在特定条件下才会被编译的某一段程序代码;可以定义类似标识符功能的宏,在编译时,预处理器会用别的文本取代该宏。

插入头文件的内容

#include命令告诉预处理器将指定头文件的内容插入到预处理器命令的相应位置。有两种方式可以指定插入头文件:

1、#include<文件名>;

2、#include"文件名"

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-05-20

方法是用4位二进制码的组合代表十进制数的0,1,2,3,4,5,6 ,7,8,9 十个数符。

十进制与8421BCD码的对应关系为:

0..........0000

1..........0001

2..........0010

3..........0011

4..........0100

5..........0101

6..........0110

7..........0111

8..........1000

9..........1001

由十进制与8421BCD码的对应关系,可知十进制28中,2对应0010,8对应1000。

即28(十进制)=00101000(8421BCD码)。


扩展资料:

8421BCD码使用过程中特别注意的是,8421BCD码只有0000—1001这10个,1010、1011...等没有对应10进制数的并不是8421BCD码!

同时还需要注意的是,一个8位二进制代码表示的数,当此数表示二进制编码的十进制数时与此数表示的是二进制数时,其数值是不相同的。

如:01000010,作为2位BCD码时, 其值为42,作为二进制数时,其值为66。

参考资料来源:百度百科—8421BCD码

本回答被网友采纳
第2个回答  推荐于2018-06-21
就是把每一位分别转换为BCD码,用4位二进制数来表示1位十进制数中的0~9这10个数码 然后放到一块,
0=0000  
1=0001   
2=0010   
3=0011   
4=0100   
5=0101   
6=0110   
7=0111   
8=1000   
9=1001
所以
2 = (0010)BCD
8 = (1000)BCD
因此,
28 = (0010 1000)BCD本回答被网友采纳
第3个回答  2014-06-18
28的十位2,个位8分别用8421bcd码转换(2---0010 8---1000) 28转换为101000
第4个回答  2012-07-04
把十位和个位分开 就是0010 为2 ,个位1000为8 ,简单的说,8421码就是把通常的十进制的每一位用4位二进制码来表示。
相似回答