① 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--)
(1)c語言八進制輸出用演算法擴展閱讀:
十進制轉十六進制的具體方法:
對於整數部分,用被除數反復除以16,除第一次外,每次除以16均取前一次商的整數部分作被除數並依次記下每次的余數。另外,所得到的商的最後一位余數是所求二進制數的最高位。
對於小數部分,採用連續乘以基數16,並依次取出的整數部分,直至結果的小數部分為0為止。故該法稱「乘基取整法」。
10進制數轉換成十六進制數,這是一個連續除以16的過程:把要轉換的數,除以16,得到商和余數,將商繼續除以16,直到商為0。最後將所有餘數倒序排列,得到數就是轉換結果。
② C語言:輸入一個十進制整數,將其轉換為八進制數輸出。不能使用%0,仍然屬於%d輸出
這個是輸出16以內任意進制的演算法
#include "stdafx.h"
#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
char* fn(int n,int count )
{
char hex[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
char result[32]={'0'};
char rst[32]={'0'};
int remainder;
int i=0,j=0;
while(count>0)
{
remainder=count%n;
rst[i]=hex[remainder];
i++;
count=count/n;
}
for(j=0;j<i;j++)
{
result[j]=rst[i-j-1];
}
return result;
}
int main(int argc, char* argv[])
{
int cnt,cn;
char a[32];
printf("輸入的整數或者進制數為零表示退出程序\n");
while(1)
{
printf("請輸入一個32位范圍內整數");
scanf("%d",&cnt);
printf("請輸16以內的轉換進制");
scanf("%d",&cn);
if(cnt==0||cn==0)
break;
else
{
strcpy(a,fn(cn,cnt));
printf("您輸入的整數%d 轉換為%d進制的結果為%s\n\n",cnt,cn,a);
}
}
system("pause");
return 0;
}
③ C語言輸入小寫字母輸出八進制,二進制,十進制
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
/*十進制數轉換成二進制數字*/
void fun_10to2(int n)
{
if(n<2)
printf("%d",n);
else
{
fun_10to2(n/2);
printf("%d",n%2);
}
}
/*十進制數字轉換成八進制數字*/
void fun_10to8(int n)
{
if(n<8)
printf("%d",n);
else
{
fun_10to8(n/8);
printf("%d",n%8);
}
}
int main()
{
char s[100];
int a;
printf("請輸入一個16進制數(0-9,a-b)\n");
scanf("%s",s);
/*得到10進制數*/
sscanf(s,"%x",&a);
/*輸出10進制數*/
printf("\n10進制數:%d",a);
/*輸出8進制數*/
printf("\n8進制數:");
fun_10to8(a);
/*輸出2進制數*/
printf("\n2進制數:");
fun_10to2(a);
printf("\n");
return 0;
}
④ c語言中十六進制和八進制的格式
1、八進制以0開頭,後面跟數字0~7。如:045(8進制數45)如果使用printf函數輸出時,可以通過格式數明符來控制輸出格式。例如:int
x=23;printf("%x",
x);
//
以16進制格式輸出,輸出17;printf("%o",
x);
//
以8進制格式輸出,輸出2。
2、十六進制以0x開頭,後面跟數字0~9或字母A~F(小寫也可以)。如:0x2D(16進制數2D)。
拓展資料:
C語言是國際上廣泛流行的、很有發展前途的計算機高級語言。它適合作為系統描述語言,即可用來編寫系統軟體,也可用來編寫應用軟體。早期的操作系統等系統軟體主要是用匯編語言編寫的(包括
UNIX操作系統在內)。
⑤ 如何輸出帶符號的八進制C語言
printf(」%o「,a);
%o代表要輸出八進制。
⑥ C語言中,%o八進制輸出,怎麼算的,能說具體嗎
%o為8進制輸出,其實就是將後續參數的值,轉換為8進制形式,然後進行輸出。
計算的時候,實際上就是把10進制數轉為8進制。
轉換方法為除8取余法,具體如下:
1 整數部分除以8,記錄余數;
2 判斷商是否為0,如果為0,則執行3,否則繼續執行1;
3 從最後一個余數向前排列,得到結果。
如圖: