c語言bcd
發布時間: 2021-03-17 14:33:38
『壹』 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;
}
}
『貳』 8421BCD碼在c語言中的表示
樓上個哥們確信這個是一種二進製表示方法?據我淺薄的計算機知識了解:好像2進制好像只有0和1吧?這個16進制的代碼……當然你可以在變數聲明時直接定義
int n=138550221;
這樣就行了,在輸出時採用%X輸出;
你可以直接用計算器計算這個16進制數所對應的10進制數
『叄』 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碼轉成二進制輸出的程序
#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]='