c语言位运算八进制转二进制,C语言十进制转换二进制八,十六进制。二进制转十进制。...
C語言十進制轉換二進制八,十六進制。
十進制轉二進制有個計算公式,就是除以2取余再倒序顯示余數就是了。可以根據公式寫。八制進公式也同理。十六進制有點不一樣,大于9的要轉為字母。A,B,C,D,E,F。
#include
void totwo();
void toeight();
void tosixt();
int main()
{
totwo();
toeight();
tosixt();
return 0;
}
void totwo()
{
int p,m,n,a[100];
printf("十進制轉二進制\n");
printf("輸入十進制數:");
scanf("%d",&p);
for(m=0;p>0;m++)
{
a[m]=p%2;
p=p/2;
}
for(n=m-1;n>=0;n--)
printf("%d",a[n]);
printf("\n");
}
void toeight()
{
int p,m,n,a[100];
printf("十進制轉八進制\n");
printf("輸入十進制數:");
scanf("%d",&p);
for(m=0;p>0;m++)
{
a[m]=p%8;
p=p/8;
}
for(n=m-1;n>=0;n--)
printf("%d",a[n]);
printf("\n");
}
void tosixt()
{
int p,m,n,a;
char ch[100];
printf("十進制轉十六進制\n");
printf("輸入十進制數:");
scanf("%d",&p);
for(m=0;p>0;m++)
{
a=p%16;
if(a<10)
{
ch[m]=a+'0';
}else
{
ch[m]=a-10+'A';
}
p=p/16;
}
for(n=m-1;n>=0;n--)
printf("%c",ch[n]);
printf("\n");
}
--11-2二進制轉十進制。也是有一個公式,比如二進制1010對應十進制是10,從前面位開始1*2^3+0*2^2+1*2^1+0*2^0=8+2=10.還有就是判斷輸入的是不是二進制數了。
#include
void towtoten();
int pow(int a);
int main()
{
towtoten();
return 0;
}
void towtoten()
{
int temp,n=0,i,j,sum=0;
char p,a[100];
printf("\n二進制轉十進制\n");
printf("輸入二進制數:");
while((p=getchar())!='\n')
{
a[n]=p;
n++;
}
j=n;
for(i=0;i
{
if(a[i]=='.')
{
printf("不支持小數。");
towtoten();
return;
}
if(a[i]=='-')
{
printf("不支持負數。");
towtoten();
return;
}
if(a[i]!='1'&&a[i]!='0')
{
printf("輸入有誤,不是二進制數。");
towtoten();
return;
}
if(a[i]=='1')
{
temp=pow(j-1);
}else
{
temp=0;
}
sum+=temp;
j--;
}
printf("十進制數:%d",sum);
printf("\n");
}
int pow(int a)
{
int product=1;
for(int i=0;i
{
product*=2;
}
return product;
}
總結
以上是生活随笔為你收集整理的c语言位运算八进制转二进制,C语言十进制转换二进制八,十六进制。二进制转十进制。...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php手机论坛程序,网站开发-php开发
- 下一篇: STM32F0使用LL库实现SHT70通