c语言八进制数
⑴ c语言中-1的八进制值是多少
c语言中-1的八进制值是37777777777
先转化为二进制1111 1111 1111 1111,然后二进制转八进制,从右边起,每三位一组,每组对应一个八进制数,如,以一字节为例:
10101011(B) = 10 101 011 = 253(O)
所以,32个1对应的八进制数就是37777777777
(1)c语言八进制数扩展阅读:
二进制化为八进制:
整数部份从最低有效位开始,以3位一组,最高有效位不足3位时以0补齐,每一组均可转换成一个八进制的值,转换完毕就是八进制的整数。
小数部份从最高有效位开始,以3位一组,最低有效位不足3位时以0补齐,每一组均可转换成一个八进制的值,转换完毕就是八进制的小数。
⑵ C语言中是用"OX"开头表示是十六进制数,那十进制,二进制,八进制呢
1,C语言没有直接输出二进制的方法。
2,八进制在输出的时候以0开头,例如:0123十进制的83
3,十进制正常输出,无特别表示。
4,十六进制在输出的时候以0X或者0x开头,例如0x123 十进制的291。
(2)c语言八进制数扩展阅读:
进制转换是人们利用符号来计数的方法。进制转换由一组数码符号和两个基本因素“基数”与“位权”构成。
基数是指,进位计数制中所采用的数码(数制中用来表示“量”的符号)的个数。
位权是指,进位制中每一固定位置对应的单位值。
16进制就是逢16进1,只有0~9这十个数字,用A,B,C,D,E,F这六个字母来分别表示10,11,12,13,14,15。字母不区分大小写。
十进制就是逢10进1。
八进制就是逢8进1,八进制数采用 0~7这八数来表达一个数。
二进制就是逢2进1。
K进制就是逢K进1。
参考资料来源:网络-进制转换
⑶ C语言程序十进制的数转换成八进制的数
C语言程序十进制的数转换成八进制的数的办法:
#include <stdio.h>
#include <math.h>
void main()
{
int n,a,sum = 0,i =0;
printf("十进制输出一个数n
");
scanf("%d",&n);
while(n)
{
a = n%8;
n = n/8;
sum += a*pow(10,i);
i++;
}
printf("八进制输出sum:%d",sum);
}
⑷ C怎么定义八进制数
不论八进制还是十进制数都是整型,定义方式(假设定义a为整型)都为int a;且计算机存储的方式都是二进制,只不过输入或者显示的方式可以不同,如输入八进制数可以按以下方式:scanf("%o",&a);不过其存储方式还是二进制,且可以以任何整型的方式输出,具体示例如下,按八进制输入一个数,并按八进制,十进制和十六进制输出:
⑸ C语言中 怎样区分八进制 十进制 二进制
编程语言通常规定是以0开头的数字是八进制数,以0x开头的数字是十六进制数,其余的就是十进制数,至于你说的“十进制是D表示 二进制是B 十六进制是H”在编写程序时是不能用的,那只是为了方便,书写时(不是在计算机上编程时)用到的(只对于C语言编程,汇编语言编程时,是写上的),你的程序 int x=011中,x是用八进制表示的一个数字,他是9.后面的printf("%d\n",++x);是以10进制形式打印结果(%d的作用),所以程序运行的结果是9.
⑹ 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
以上内容参考:网络-八进制
⑺ C语言八进制详解
八进制是以8为基数的一种计数系统。在八进制系统中,你是这样计数的:O,1,2,3,4,5,6,7,10,ll,12,13,等等。下面比较了八进制(第二行)和十进制(第一行)中的计数过程: O,l,2,3,4,5,6,7,8,9,10.11,12,13,14,15,16 0,1,2.3,4,5,6,7,10,11,12,13,14,15,16,17,20 注意,在八进制中,在数到7后,就要增加一个八进制位,第二个八进制位显然就是8?(等于十进制的8)。如果你数到第三个八进制位(八进制的100),那将是8?或十进制的64,因此,八进制的100等于十进制的64。 现在,八进制已经不象以前那样常用了,这主要是因为现在的计算机使用的是8,16,32或64位处理器,最适合它们的计数系统是二进制或十六进制(见20.24中有关十六进制计数系统的介绍) C语言支持八进制字符集,这种字符要用反斜杠字符来标识。例如,在C程序中,下面的语句并不少见: if(x=='\007')break; 这里的"\007"恰好就是ASCII值为7的字符;该语句用来检查终端鸣笛字符。另一个常见的八进制数是"\033",即Escape字符(在程序中它通常表示为"\033")。然而,八进制数现在已经很少见了——它们被十六进制数代替了。
⑻ C语言, 怎么输入八进制数
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
⑼ c语言八进制输入的问题
根据你程序中scanf("%d,%o",&a,&b);这句语句,你的输入格式应该是:M(一个十进制数),N(一个八进制数)(回车)M中各位数值的范围要求0-9N中各位数值的范围要求0-7对于N,我进一步说明一下:它是从第一位开始识别提取,直到第一个非0-7的数。例如:对于N,如果输入07328123(则实际赋给N的八进制数是0732)如果输入232a23289(则实际赋给N的八进制数是232)如果输入9213(则N为随机数,因为你输入数的第一位就不符合要求)
⑽ 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。
(10)c语言八进制数扩展阅读:
C语言是国际上广泛流行的、很有发展前途的计算机高级语言。它适合作为系统描述语言,即可用来编写系统软件,也可用来编写应用软件。
早期的操作系统等系统软件主要是用汇编语言编写的(包括
UNIX操作系统在内)。由于汇编语言依赖于计算机硬件,程序的可读性和可移植性都比较差。为了提高可读性和可移植性,最好改用高级语言,但一般的高级语言难以实现汇编语言的某些功能(汇编语言可以直接对硬件进行操作),例如:对内存地址的操作、位操作等)。人们设想能否找到一种既具有一般高级语言特性,又具有低级语言特性的语言,集它们的优点于一身。于是,C语言就在这种情况下应运而生了。