导航:首页 > 源码编译 > c语言八进制输出用算法

c语言八进制输出用算法

发布时间:2022-06-05 13:21:19

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

如图:

阅读全文

与c语言八进制输出用算法相关的资料

热点内容
傅氏算法和积分算法 浏览:176
安卓十怎么下降到安卓九 浏览:221
windows压缩tar 浏览:397
写作基础pdf 浏览:744
redis30php扩展 浏览:517
小米手机发布源码 浏览:611
程序员一般什么发音 浏览:280
阿里云java服务器 浏览:217
51单片机读取sd卡程序 浏览:821
初中学习单片机知识 浏览:357
安卓手机如何下苹果官网 浏览:37
linuxpython脚本运行 浏览:855
vs中编译在哪 浏览:454
linuxshell安装 浏览:761
qq邮箱发压缩包 浏览:196
做程序员需要跳槽吗 浏览:394
程序员进度考核 浏览:842
单片机编译picc 浏览:974
php获取当前url域名 浏览:338
丁字框架梁处用加密吗 浏览:682