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

c語言bcd進制

發布時間: 2023-07-07 01:06:40

c語言中怎麼把16進制轉換成bcd碼

void HextoBCD(u8 *pBuff,u8 len) //十六進制轉為BCD碼
{
u8 i,temp;
for(i=0;i<len;i++)
{
temp=pBuff[i]/10;
time[i]=pBuff[i]%10+temp*16;
}
}

❷ 十六進制數4AH的BCD碼為

十六進制數沒有H,
0-9, A,B,C,D,E,F(10-15)
0-9 0000 0001 0010 0011 0100
0101 0110 0111 1000 1001
A-F 1010 1011 1100 1101 1110 1111
通常,對十六進制數的表示,可以在數字的右下角標注16或H,但在C語言中是在數的前面加數字0和字母X即0X來表示。例如,12AF在C語言中表示為0X12AF。
BCD碼,全稱 二進制編碼的十進制(Binary-Coded Decimal),指的就是用四位二進制數表示一位BCD碼,用一個位元組表示的兩位BCD碼,稱為壓縮型BCD碼。
一個BCD碼佔4位,而一個位元組有8位。若把二個BCD碼放在一個位元組中,就叫壓縮的BCD碼。而一個位元組只放一個BCD碼,高位置0,則叫非壓縮的BCD碼。
4AH 01001010 轉化成十進制數4*16^1+10*16^0=74,1*2^6+1*2^3+1*2^1=74
4AH和74H一樣都是十六進制數

❸ c語言bcd進制轉碼程序問題


voidshowbit(intn)
{
if(n>1){
showbit(n/2);
printf("");
}
printf("%d",n%2);
}
voidshowoct(intn)
{
if(n>7){
showoct(n/8);
printf("");
}
printf("%d",n%8);
}
voidshowhex(intn)
{
if(n>15){
showhex(n/16);
printf("");
}
printf("%d",n%16);
}
intmain()
{
inta;
printf("inputanum:");
scanf("%d",&a);
showbit(a);
printf(" ");
showoct(a);
printf(" ");
showhex(a);
printf(" ");
}


鍵盤輸入十進制整數,轉二進制八進制十六進制,希望會對你有所幫助

❹ c語言bcd碼轉十進制

不知道我的理解對不對,這個問題,就是把一個整數還原成16進制數的表示方式,而這個十六進制數實際上表示的就是十進制數,所以我們只要把輸入的數轉換成十六進製表示就行了,但是有一個問題,其實需要注意的就是輸入的時候10-15
其實是不能輸入了,因為剛好就是A-F,所以不妨讓輸入值>=16
<=15
對於這個范圍的數
其實只要兩步就行了,第一,除以16取余數,對應的是各位上的數,除以16取整數商,對應的就是十位數,應該這樣就可以
void
main(){
int
a;
cin>>a;
if(a<16||a>153)cout<<"不符合輸入規則"<<endl;
else{
int
c=a%16;
int
b=a/16;
int
abc=
b*10+c;
cout<<abc<<endl;
}
}

❺ 求C語言高手解釋

BCD是計算機表示十進制的方法,0~9分別對應0000~1001(8421碼),0000~1001表示為十六進制就是0x0~0x9
十進制12表示為BCD為0001 0010(二進制),表示為十六進制就是0X12;
小明誤以為這是二進制數,所以00010010(二進制)=18(十進制)。其實0001和0010應該是種編碼,每四位表示一個數碼。

❻ 如何用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;
}

❼ 利用C語言 將BCD碼轉成二進制輸出的程序

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#defineINPUT_BCD_MAX_LENGTH10
intmain(void)
{
//
charbcd[INPUT_BCD_MAX_LENGTH];
char*bin=NULL;
chart_bin[6];
inti,j,q,r,t,bcd_len,bin_len;
printf("Pleaseenterthedecimalcode:");
scanf("%s",bcd);

bcd_len=strlen(bcd);
bin_len=bcd_len*6+1;
bin=(char*)malloc(bin_len);
memset(bin,0,bcd_len*6+1);
for(i=0;i<bcd_len;i++)
{
/*把字元轉換為數字*/
q=bcd[i]-'0';
//將每個十進制轉換為四位二進制
for(j=0;j<4;j++)
{
t=q/2;
r=q%2;
q=t;
if(q==0&&r!=1)
{
t_bin[j]='0';
}
else
{
//把數字轉換為字元
t_bin[j]=r+'0';
}
}
t_bin[j]='';
t_bin[j+1]='';
strrev(t_bin);
strcat(bin,t_bin);
}

printf("BCDcodeddecimal: %s ",bin);
free(bin);
bin=NULL;

system("pause");
return0;
}