1. c語言將八位無符號二進制數轉換成BCD碼
第一步,將8位無符號二進制整數除以100,得到兩個結果:商和余數,這個商就是3位壓縮bcd碼的最高4位(截掉高4位,留下低4位二進制碼);
第二步,將上面的余數除以10,又得到兩個結果:商和余數,將商的低4位作為3位壓縮bcd碼的中間4位,余數的低4位作為3位bcd碼的最低4位。
2. 如何用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;
}
3. 在C語言中如何將浮點型數據轉換成BCD碼的格式
BCD碼就是二進製表示數據,你就直接把浮點數按每個數字轉換成BCD碼就行了。
4. 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(" ");
}
鍵盤輸入十進制整數,轉二進制八進制十六進制,希望會對你有所幫助
5. 如何用C語言將32位的二進制數轉換為BCD碼,不要用除法和取余方法,速度太慢了,有沒有好方法
「不要用除法和取余方法,速度太慢了」
C語言本身就是個二手貨,你以為用「其它的方法」,就可以避免生成除法運算嗎?
あまい
6. 利用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]='