『壹』 用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(k>9)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;
}
『叄』 請問用C語言編寫一個十進制轉換成二進制或八進制或十六進制的程序需要怎麼打
#include<stdio.h>
voidmain()
{
//進制轉換函數的聲明
inttransfer(intx);
intx;
printf("請輸入一個十進制數:");
scanf("%d",&x);
printf("轉換成二進制數是:%d ",transfer(x));
}
inttransfer(intx)
{
intp=1,y=0,yushu;
while(1)
{
yushu=x%2;
x/=2;
y+=yushu*p;
p*=10;
if(x<2)
{
y+=x*p;
break;
}
}
returny;
}
(3)c語言十進制整數轉化為八進制和十六進制擴展閱讀
C語言:整數轉換十六進制數和八進制
#include<stdio.h>
voidmain()
{
inti;
printf("請輸入一個十進制數:");
scanf("%d",&i);
printf("這個數轉換為十六進制數:%x ",i);
printf("這個數轉換為八進制數:%o ",i);
getch();
return0;
}
『肆』 C語言十進制如何轉八進制個十六進制,
printf函數
%o可輸出無符號八進制整數。
%x可輸出無符號十六進制整數。
滿意請採納!
『伍』 C語言,十進制轉換成八進制和十六進制輸出
//十進制轉二進制
#include <stdio.h>
void trans(int x)
{
int a[30];
int i=0,rem;
do{
rem=x%2;x=x/2;
a[i]=rem;
i++;
}while(x!=0);
while(i>0)
printf("%d",a[--i]);
printf("\n")
}
void main()
{
int d;
printf("請輸入一個十進制的正整數:\n");
do scanf("%d",&d);while(d<0);
trans(d);
}
//十進制轉八進制
#include "stdio.h"
#include "math.h"
main()
{
int i,n=0,o=0,j=0;
scanf("%d",&i); /*改成*/
if(i<=7)
o=i;
else
{
while(i>7)
{ /*加括弧*/
j=i%8;
i=i/8;
o=j*pow(10,n)+o;
n++;
} /*加括弧*/
}
o=o+i*pow(10,n);
printf("o=%d\n",o);
}
//十進制轉十六進制
#include<stdio.h>
char tohex(int n)
{
if(n>=10 && n<=15)
{
return 'A'+n-10;
}
return '0'+n;
}
void dec2hex(int n,char *buf)
{
int i=0;
int mod;
while(n)
{
mod = n%16;
buf[i++]=tohex(mod);
n=n/16;
}
//得進行反序。
int j,k;
for(j=0,k=i-1;j<i/2;j++,k--)
{
char temp;
temp = buf[j];
buf[j] = buf[k];
buf[k] = temp;
}
buf[i]='\0';
}
int main()
{
int n;
scanf("%d",&n);
char a[32];
dec2hex(n,a);
printf("%s",a);
return 0;
}
『陸』 c語言十進制怎麼轉換八和十六(求過程)
先10轉2 再轉8,16進制。8,16轉2再轉10進制。
比如:
八進制:63 ->二進制:110(6) 011(3) -> 十進制:32+16+2+1 = 51
十六進制:A5 ->二進制:1010(A) 0101(5) -> 十進制:128+32+4+1 = 165
十進制 19 ->二進制 1 0011 -> 八進制: (010 011) = 23
-> 十進制:(0001 0011) = 13
通過二進制之後 會簡單多了,希望對你有幫助。
『柒』 十進制123在c語言中用八進制和十六進制怎麼表示
十進制123在c語言中用八進製表示為173,用十六進製表示為7B。
十進制整數轉換為其他進制整數採用"除進制數取余,逆序排列"法。用進制數去除十進制整數,可以得到一個商和余數;再用進制數去除商,如此進行,直到商為零時為止,然後把先得到的余數作為其他進制數的低位有效位,後得到的余數作為其他進制數的高位有效位,依次排列起來。
即十進制123=1*8^2+7*8^1+3*8^0=八進制173=7*16^1+11*16^0=十六進制7B。
(7)c語言十進制整數轉化為八進制和十六進制擴展閱讀:
八進制廣泛應用於計算機系統,如PDP-8,ICL 1900和IBM大型機使用12位、24位或36位。八進制是這些基礎,因為他們的最理想的二進制字縮寫大小能被3整除(每個八進制數字代表三個二進制數字)。四、八到十二個數字可以簡明地顯示整個機器。
它也降低成本使得數字允許通過數碼管,七段顯示器,和計算器用於操作員控制台,他們在二進制顯示使用過於復雜,然而十進制顯示需要復雜的硬體,十六進制顯示需要顯示更多的數字。
『捌』 【c語言】輸入一個十進制數,轉換成對應的八進制數和十六進制數並輸出
#include<stdio.h>
voiddec2n(intx,intn)
{inta[33],i;
for(i=0;x;x/=n)a[i++]=x%n;
for(i--;i>=0;i--)
if(a[i]<10)printf("%d",a[i]);
elseprintf("%c",a[i]+55);
printf("
");
}
intmain()
{intx;
scanf("%d",&x);
printf("%d的八進制:",x);dec2n(x,8);
printf("%d的十六進制:",x);dec2n(x,16);
return0;
}
『玖』 C語言編程,輸入十進制數輸出十六進制和八進制
可以通過下面的公式解決
#include<stdio.h>
const int maxn = 128;
const int index8 = 8;
const int index16 =16;
int main()
{int Array8[maxn];
int Array16[maxn];
int n, cot8 = 0;
scanf("%d", &n);
int m = n, cot16 = 0;
while(n) {Array8[cot8++] = n % index8;
n /= index8;}
while(m) {Array16[cot16++] = m % index16;
m /= index16;}
int i;
for(i = cot8 - 1; i >= 0; i--)
printf("%d", Array8[i]);
puts("");
for(i = cot16 - 1; i >= 0; i--)
(9)c語言十進制整數轉化為八進制和十六進制擴展閱讀:
十進制轉十六進制的具體方法:
對於整數部分,用被除數反復除以16,除第一次外,每次除以16均取前一次商的整數部分作被除數並依次記下每次的余數。另外,所得到的商的最後一位余數是所求二進制數的最高位。
對於小數部分,採用連續乘以基數16,並依次取出的整數部分,直至結果的小數部分為0為止。故該法稱「乘基取整法」。
10進制數轉換成十六進制數,這是一個連續除以16的過程:把要轉換的數,除以16,得到商和余數,將商繼續除以16,直到商為0。最後將所有餘數倒序排列,得到數就是轉換結果。
『拾』 C語言編程,輸入十進制數輸出十六進制和八進制
可以通過下面的公式解決
#include<stdio.h>
const int maxn = 128;
const int index8 = 8;
const int index16 =16;
int main()
{int Array8[maxn];
int Array16[maxn];
int n, cot8 = 0;
scanf("%d", &n);
int m = n, cot16 = 0;
while(n) {Array8[cot8++] = n % index8;
n /= index8;}
while(m) {Array16[cot16++] = m % index16;
m /= index16;}
int i;
for(i = cot8 - 1; i >= 0; i--)
printf("%d", Array8[i]);
puts("");
for(i = cot16 - 1; i >= 0; i--)
(10)c語言十進制整數轉化為八進制和十六進制擴展閱讀:
十進制轉十六進制的具體方法:
對於整數部分,用被除數反復除以16,除第一次外,每次除以16均取前一次商的整數部分作被除數並依次記下每次的余數。另外,所得到的商的最後一位余數是所求二進制數的最高位。
對於小數部分,採用連續乘以基數16,並依次取出的整數部分,直至結果的小數部分為0為止。故該法稱「乘基取整法」。
10進制數轉換成十六進制數,這是一個連續除以16的過程:把要轉換的數,除以16,得到商和余數,將商繼續除以16,直到商為0。最後將所有餘數倒序排列,得到數就是轉換結果。