當前位置:首頁 » 編程語言 » bcd碼加法c語言實現
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

bcd碼加法c語言實現

發布時間: 2022-04-05 02:08:18

A. 如何用c語言實現bcd碼轉十六進制數比如BCD碼5(0101),怎麼轉成0x05

#include<stdio.h>
#include<string.h>
int main()
{
char a[20],b[5];
int i,result = 0,k = 1,j = 0;
printf("輸入一個二進制數:\n");
gets(a);
for(i = strlen(a)-1;i >= 0;i --)
{
if(a[i] == '1') result += 1 << (k-1); //如果是1,用1*位權
if(k == 4 || i == 0) //每四位計算一次結果(result)。
//如果到了最高位(i==0)不足四位(比如100 0000),也計算
{
switch(result)
{
case 10: b[j++]='A';break; //大於等於十轉化成字母
case 11: b[j++]='B';break;
case 12: b[j++]='C';break;
case 13: b[j++]='D';break;
case 14: b[j++]='E';break;
case 15: b[j++]='F';break;
default: b[j++]=result + '0';break;
}
result = 0; //結果清零
k = 0; //表示位權的K清零
}
k ++; // 初始位權為1
}
b[j] = '\0';
printf("結果是:\n");
for(i = strlen(b)-1;i >= 0;i --)
printf("%c",b[i]);
printf("\n");
return 0;
}

B. 用C語言編寫一個將8位二進制數轉化成BCD碼的程序

#define uchar unsigned char
uchar 8_bit;
uchar ge,shi,;
=8_bit/100;
shi=8_bit%100/10;
ge =8_bit%10;

C. c語言bcd碼相加

特別看中速度的話可以做個256×256的表格,查表計算

D. 編寫程序:實現兩個8421BCD碼加法程序

1、壓縮BCD碼(一個位元組存兩位8421BCD碼對應的十進制數)加法程序:
MOV AL,12H
MOV BL,34H
ADD AL,BL
DAA
2、非壓縮BCD碼(一個位元組存一位8421BCD碼對應的十進制數)加法程序:
MOV AL,02H
MOV BL,04H
ADD AL,BL
AAA

E. BCD碼分離程序怎樣用C語言來寫

給你一個可以轉換任意長度的

int org=1212123; /*這個數是要轉換的正整數,可以任意長度*/

int bcd[255]; /*用於存放bcd碼,默認255個位數*/
int i=0,j=0;
do{
bcd[i]=org%10;
i++;
org=org/10;
}while(org)
for(j=i-1;j>=0;j--)
{
printf("%-5d,",bcd[j]);
}

F. 51單片機,輸入是BCD碼,如何實現BCD碼數據的加法運算

輸入BCD碼,是怎麼輸入的,要直接實現BCD碼加法計算,用匯編語言寫程序就很簡單,用ADD指令,然後用DA A指令調整。用C語言寫程序也可以,關鍵是看BCD碼的輸入方式是什麼。

G. 用c語言十六進制 bcd碼

BCD難道還有什麼位數限制?
一般是把16進制先轉換成10進制,由10進制數決定BCD的位數。

H. c語言 計算機 bcd碼

(101001)BCD=29,
這是因為BCD編碼是每4位二進制對應一位十進制數字,即10-->2,1001-->9

I. 編程計算1+2+3+4+5+6+7+8+9+10BCD碼加法

二進制編碼的十進制數,簡稱BCD碼(Binarycoded Decimal). 這種方法是用4位二進制碼的組合代表十進制數的0,1,2,3,4,5,6 ,7,8,9 十個數符。4位二進制數碼有16種組合,原則上可任選其中的10種作為代碼,分別代表十進制中的0,1,2,3,4,5,6,7,8,9 這十個數符。最常用的BCD碼稱為8421BCD碼,8.4.2.1 分別是4位二進數的位取值。 點擊此處將給出十進制數和8421BCD編碼的對應關系表。
1、BCD碼與十進制數的轉換
BCD碼與十進制數的轉換.關系直觀,相互轉換也很簡單,將十進制數75.4轉換為BCD碼如:
75.4=(0111 (0101.0100)BCD 若將BCD碼1000 0101.0101轉換為十進制數如: (1000 0101.0101)BCD=85.5
注意:同一個8位二進制代碼表示的數,當認為它表示的是二進制數和認為它表示的是二進制編碼的十進制數時,數值是不相同的。
例如:00011000,當把它視為二進制數時,其值為24;但作為2位BCD碼時, 其值為18。
又例如00011100,如將其視為二進制數,其值為28,但不能當成BCD碼,因為在8421BCD碼中,它是個非法編碼 .
2、BCD碼的格式
計算機中的BCD碼,經常使用的有兩種格式,即分離BCD碼,組合BCD碼。
所謂分離BCD碼,即用一個位元組的低四位編碼表示十進制數的一位,例如數82的存放格式為:
_ _ _1 0 0 0 _ _ _ _0 0 1 0 其中_表示無關值。
組合BCD碼,是將兩位十進制數,存放在一個位元組中,例82的存放格式是1000 0010
3、BCD碼的加減運算
由於編碼是將每個十進制數用一組4位二進制數來表示,因此,若將這種BCD碼直接交計算機去運算,由於
計算機總是把數當作二進制數來運算,所以結果可能會出錯。例:用BCD碼求38+49。
解決的辦法是對二進制加法運算的結果採用"加6修正,這種修正稱為BCD調整。即將二進制加法運算的結果修正為BCD碼加法運算的結果,兩個兩位BCD數相加時,對二進制加法運算結果採用修正規則進行修正。修正規則:
(1)如果任何兩個對應位BCD數相加的結果向高一位無進位,若得到的結果小於或等於9,則該不需修正;若得到的結果大於9且小於16時,該位進行加6修正。
(2)如果任何兩個對應位BCD數相加的結果向高一位有進位時(即結果大於或等於16),該位進行加6修正.
(3)低位修正結果使高位大於9時,高位進行加6修正。
下面通過例題驗證上述規則的正確性。
用BCD碼求35+21 BCD碼求25+37 用BCD碼求38+49 用BCD碼求42+95
用BCD碼求91+83 用BCD碼求94+7 用BCD碼求76+45
兩個組合BCD碼進行減法運算時,當低位向高位有借位時,由於"借一作十六"與"借一作十"的差別,將比正確的結果多6,所以有借位時,可採用"減6修正法"來修正.兩個BCD碼進行加減時,先按二進制加減指令進行運算,再對結果用BCD調整指令進行調整,就可得到正確的十進制運算結果。 實際上,計算機中既有組合BCD數的調整指令,也有分離BCD數的調整指令。另外,BCD碼的加減運算,也可以在運算前由程序先變換成二進制數,然後由計算機對二進制數運算處理,運算以後再將二進制數結果由程序轉換為BCD碼
這是我抄過來的 希望能幫到你