本文目錄一覽:
請問在C語言中,如何將一個十進制數轉化為八位二進制的數?
我就懶得敲了,轉一個網友的回答:
從最低位(最右)算起,位上的數字乘以本位的權重,權重就是2的第幾位的位數減一次方。比如第2位就是2的(2-1次)方,就是2;第8位就是2的(8-1)次方是128。把所有的值加起來。
2(1-1)代表2的0次方,就是1;其他類推
比如二進制1101,換算成十進制就是:1*2(1-1)+0*2(2-1)+1*2(3-1)+1*2(4-1)=1+0+4+8=13
用C語言編程實現十進制選擇轉換為二進制八進制和十六進制
#include
#include
#include
/*該函數可以實現小於整型數據的任意進制之間轉換*/
/*以下函數將a進制數s轉換成b進制並輸出*/
void f(int a,int b,char s[])
{ char r[17];
int i,n,t,k;
for(n=strlen(s)-1,i=t=0;*(s+i)!=’\0′;i++,n–) /*這裡先轉換成十進制數*/
{ if(*(s+i)=’9′)
t+=(*(s+i)-‘0’)*int(pow(a,n));
else
t+=(*(s+i)-‘A’+10)*int(pow(a,n));
}
for(i=0;t!=0;i++) /*再轉換成b進制*/
{ k=t%b;
if(k9)r[i]=’A’+k-10;
else r[i]=’0’+k;
t/=b;
}
r[i]=’\0′;
s=strrev(r);
printf(“%s”,s);
}
C語言講一個十進制數轉化為二,八,十六進制(函數調用
itoa()函數可以實現,根據itoa()第三個參數(2/8/10)可以進行二、八、十六進制的轉換,轉換後為字符串,如要求是int,可以用atoi實現字符串與int之間的轉換舉例:#include
“stdio.h”#include
“stdlib.h”int
main(){int
L1;printf(“輸入數字\n”);scanf(“%d”,
L1);char
str1[256];char
str2[256];char
str3[256];itoa(L1,
str1,
2);itoa(L1,
str2,
8);itoa(L1,
str3,
16);printf(“2進制:%s\n8進制:%s\n16進制:%s\n”,str1,str2,str3);return
0;}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/200659.html