当前位置:首页 » 编程语言 » c语言8进制
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言8进制

发布时间: 2022-01-15 09:43:37

c语言中的八进制

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

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

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

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

(1)c语言8进制扩展阅读

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

#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)!='')

{

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

p++;

}

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

}

Ⅱ C语言中 怎样区分八进制 十进制 二进制

编程语言
通常规定是以0
开头

数字

八进制数
,以0x开头的数字是
十六进制数
,其余的就是
十进制数
,至于你说的“十进制是D表示
二进制是B
十六进制是H”在编写程序时是不能用的,那只是为了方便,书写时(不是在
计算机
上编程时)用到的(只对于C语言编程,
汇编语言
编程时,是写上的),你的程序
int
x=011中,x是用
八进制
表示的一个数字,他是9.后面的printf("%d\n",++x);是以10
进制
形式
打印结果(%d的作用),所以程序运行的结果是9.

Ⅲ c语言中十六进制和八进制的格式

16进制以0x开头,后面跟数字0~9或字母A~F(小写也可以)。如:0x2D(16进制数2D)
8进制以0开头,后面跟数字0~7。如:045(8进制数45)
如果使用printf函数输出时,可以通过格式数明符来控制输出格式。
举例如下:
int x=23;
printf("%x", x); // 以16进制格式输出,输出17;
printf("%o", x); // 以8进制格式输出,输出2。

(3)c语言8进制扩展阅读:
C语言是国际上广泛流行的、很有发展前途的计算机高级语言。它适合作为系统描述语言,即可用来编写系统软件,也可用来编写应用软件。
早期的操作系统等系统软件主要是用汇编语言编写的(包括
UNIX操作系统在内)。由于汇编语言依赖于计算机硬件,程序的可读性和可移植性都比较差。为了提高可读性和可移植性,最好改用高级语言,但一般的高级语言难以实现汇编语言的某些功能(汇编语言可以直接对硬件进行操作),例如:对内存地址的操作、位操作等)。人们设想能否找到一种既具有一般高级语言特性,又具有低级语言特性的语言,集它们的优点于一身。于是,C语言就在这种情况下应运而生了。

Ⅳ c语言里面 %d是十进制 %o是八进制 %x是十六进制 %多少是二进制

c语言中没有表示二进制的字符,但是你可以根据十进制、八进制或者十六进制转换一下。

可以利用短除法,将十进制转变成二进制,我们一般的思路是这样的,下面给出一个例子:

把20转换成二进制:
20/2=10........余数为0 最低位
10/2=5..........余数为0
5/2=2............余数为1
2/2=1............余数为0
1/2=0............余数为1 最高位
则20换成二进制后是10100

利用短除法可以轻松地将十进制转换成二进制,在编程中是这样用的,以下给出代码:

(4)c语言8进制扩展阅读:

在做数据读写传输时最常用也最直观的莫过于十进制数,但是在不同应用场合、存储的方便在C语言开发时候也常采用二进制、八进制和十六进制存储数据。

进制是一种计数机制,对于任何一种进制,如:xx进制,就表示某一位置上的数运算时逢 xx 进一位。例如:时间60′60′,分钟就会加 1,这就是六十进制。计算机中常用的进制有二进制、八进制、十进制、十六进制。

下面给出一个使用C语言编程实现任意进制数(2-16进制)转换为其他任意进制数(2-16进制)的小程序代码:

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

int TenNum(char a[],int B); //将输入的数字转换成10进制数

void Numchange(int m, int B); //将转换好了的10进制数转换为所需进制数

int TenNum(char a[], int B)

{

int len, i, num;

int sum = 0;

len = strlen(a); //求得字符串长度

for (i = 0; i < len; i++)

{

if (a[i] >= '0' && a[i] <= '9')

num = a[i] - '0';

else if (a[i] >= 'A' && a[i] <= 'F')

num = a[i] - 'A' + 10;

sum = sum * B + num;

}

return sum;

}

void Numchange(int m, int B)

{

int n;

if (m)

{

Numchange(m / B, B);

n = m % B;

if (n < 10)

printf("%d", n); //小于10直接输出

else

printf("%c", n + 55); //大于10转换成字符输出

}

}

int main()

{

int B, b;

char a[20];

printf("请输入待转换数的进制(2-16):");

do {

scanf_s("%d", &B);

} while (B < 2 && B > 16);

printf("请输入待转换数:");

getchar();

gets_s(a); //将输入的n进制数存放在数组a中

int m = TenNum(a, B); //将输入的数字转换成十进制数

printf("请输入需要转成几进制数(2-16):");

do {

scanf_s("%d", &b);

} while (B < 2 && B > 16);

printf("%d进制数%s转换为%d进制数的结果为:",B,a,b);

Numchange(m, b); //将十进制数转换为所需进制数

printf(" ");

system("pause");

return 0;

}

Ⅳ C语言中 怎样区分八进制 十进制 二进制

编程语言通常规定是以0开头的数字是八进制数,以0x开头的数字是十六进制数,其余的就是十进制数,至于你说的“十进制是D表示 二进制是B 十六进制是H”在编写程序时是不能用的,那只是为了方便,书写时(不是在计算机上编程时)用到的(只对于C语言编程,汇编语言编程时,是写上的),你的程序 int x=011中,x是用八进制表示的一个数字,他是9.后面的printf("%d\n",++x);是以10进制形式打印结果(%d的作用),所以程序运行的结果是9.

Ⅵ C语言中如何换算八进制=进制=十六进制

最简单的办法:
将数据换算成10进制(除2取余法),然后再用fprintf直接打印就好了

如下:
1 #include <stdio.h>
2 int
3 main(void)
4 {
5 int n=8;
6 fprintf(stdout,"八进制是:%o\n十六进制是:%x\n",n,n);
7
8 return 0;
9 }

如果还有问题,欢迎来http://groups.google.com/datastream来讨论

Ⅶ c语言中-1的八进制值是多少

c语言中-1的八进制值是37777777777

先转化为二进制1111 1111 1111 1111,然后二进制转八进制,从右边起,每三位一组,每组对应一个八进制数,如,以一字节为例:

10101011(B) = 10 101 011 = 253(O)

所以,32个1对应的八进制数就是37777777777

(7)c语言8进制扩展阅读:

二进制化为八进制:

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

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

Ⅷ C语言中,%o八进制输出,怎么算的,能说具体吗

1、首先打开Microsoft Visual C++软件,新建好文件后,输入如下内容。

Ⅸ C语言, 怎么输入八进制数

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

#include<stdio.h>
voidmain(void)
{
intx;
scanf("%o",&x);//按8进制输入
printf("hex:%#X,dec:%d,oct:%#o ",x,x,x);//按16进制10进制8进制进行数据输出
}

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

Ⅹ C语言中八进制和16进制怎么表示

一、八进制由 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

以上内容参考:网络-八进制