① 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 从最后一个余数向前排列,得到结果。
如图: