C语言中的八进制

C语言中的八进制,第1张

除了二进制,C语言还会使用到八进制。

八进制是一种“逢八进一”的进制,它由 0~7 八个符号来描述。同样,此处通过十进制和八进制的对比来描述八进制的表示方式。

八进制基数为8,加法运算时逢八进一,减法运算时借一当八。例如,数字 0、1、5、7、14、733、67001、25430 都是有效的八进制。

当使用八进制表示十进制数字8时,由于表示八进制的符号只有 0~7,因此,根据逢八进一的规则,需要向高位进一位,表示为10。同理,使用八进制表示十进制数字16时,继续向高位进一位,表示为 20。

扩展资料

八进制转换为十进制的源代码如下

#include<stdio.h>

void main()

{

char *p,s[6]int n

p=s

printf("Please input a Octal number:")

gets(p)

n=0

while(*(p)!='\0')

{

n=n*8+*p-'0'

p++

}

printf("Octal number to Decimal number:%d",n)

}

C语言中scanf()函数支持输入整数时按8进制进衫则行输入,如:

#include <stdio.h>

void main(void)

{

int x

scanf("%o", &x )//按8进制厅塌源输入

printf("hex:%#X, dec:%d, oct:%#o\n", x,x,x )//按16进制 10进制 8进制进行数据输出扮态

}

scanf()函数还支持按16进制输入,格式串为:%x

一、八进制由 0~7 八个数字组成,使用时必须以0开头(注意是数字 0,不是字母 o),例如:

//合法的八进制数

int a = 015 //换算成十进制为 13

int b = -0101 //换算成十进制为 -65

int c = 0177777 //换算成十进制为 65535

//非法的八进制

int m = 256 //无前缀 0,相当睁宏于十进制

int n = 03A2 //A不是有效的八进制数字

二、十六进制由数字 0~9、字母 A~F 或 a~f(不区分大小写)组成,使用时必须以0x或0X(不区分大小写)开头,例如:

//合法的十六进制int a = 0X2A //换算成十进模蠢制为 42

int b = -0XA0 //换算成十进制为 -160

int c = 0xffff //换算成十进制为 65535

//非法的十六进悉码册制

int m = 5A //没有前缀 0X,是一个无效数字

int n = 0X3H //H不是有效的十六进制数字

二进制化为八进制

整数部份从最低有效位开始,以3位一组,最高有效位不足3位时以0补齐,每一组均可转换成一个八进制的值,转换完毕就是八进制的整数。

小数部份从最高有效位开始,以3位一组,最低有效位不足3位时以0补齐,每一组均可转换成一个八进制的值,转换完毕就是八进制的小数。

例:(11001111.01111)2 = (011 001 111.011 110)2 = (317.36)8

以上内容参考:百度百科-八进制


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12370547.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存