八进位编程
.二进制与十进制的转换
(1)二进制转十进制
方法:"按权展开求和"
例:
(1011.01)2
=(1×23+0×22+1×21+1×20+0×2-1+1×2-2)10
=(8+0+2+1+0+0.25)10
=(11.25)10
(2)十进制转二进制
·
十进制整数转二进制数:"除以2取余,逆序输出"
例:
(89)10=(1011001)2
2
89
2
44
……
1
2
22
……
0
2
11
……
0
2
5
……
1
2
2
……
1
2
1
……
0
0
……
1
·
十进制小数转二进制数:"乘以2取整,顺序输出"
例:
(0.625)10=
(0.101)2
0.625
X
2
1.25
X
2
0.5
X
2
1.0
2.八进制与二进制的转换
例:将八进制的37.416转换成二进制数:
37
.
4
1
6
011
111
.100
001
110
即:(37.416)8
=(11111.10000111)2
例:将二进制的10110.0011
转换成八进制:
0
1
0
1
1
0
.
0
0
1
1
0
0
2
6
.
1
4
即:(10110.011)2
=(26.14)8
3.十六进制与二进制的转换
例:将十六进制数5DF.9
转换成二进制:
5
D
F
.
9
0101
1101
1111.1001
即:(5DF.9)16
=(10111011111.1001)2
例:将二进制数1100001.111
转换成十六进制:
0110
0001
.
1110
6
1
.
E
即:(1100001.111)2
=(61.E)16
参考资料:http://222.214.195.26/aoshai/szzh.htm
② 用函数编程:输入一个八进制数,用函数将其转换成相应的十进制数,并在main函数中调用该函数。
#include<stdio.h>
int o2d(char s[])
{int i,x=0;
for(i=0;s[i];i++)
if(s[i]>='0'&&s[i]<='7')x=x*8+s[i]-'0';
else
{
printf("error! ");
return -1;
}
return x;
}
int main()
{char s[20];
scanf("%s",s);
printf("%d ",o2d(s));
getch();
return 0;
}
③ 求八进制转化为十进制的c语言思路及编程
思路:对于所有的八进制数符,按乘权求和的思想就可以实现转化。
#include<stdio.h>
int main()
{int x=0,c;
printf("请输入一个八进制数:");
scanf("%c",&c);
while(c>='0'&&c<'8')
{x=x*8+c-'0';
scanf("%c",&c);
}
printf("十进制数为:%d ",x);
return 0;
}
④ C语言编程,输入十进制数输出十六进制和八进制
#include <stdio.h>
#define N 8
void tran(int num,int k)
{
int arr[N],i;
for (i=0;i <N;i++)
{
arr[i]=num%k;
num=num/k;
if (num==0)
break;
}
printf("转换为%d进制数为: ",k);
for (;i>=0;i--)
switch (arr[i])
{
case 10: printf("A");break;
case 11: printf("B");break;
case 12: printf("C");break;
case 13: printf("D");break;
case 14: printf("E");break;
case 15: printf("F");break;
default: printf("%d",arr[i]);
}
printf("
");
}
int main()
{
int num,choo;
loop: printf("请选择功能:0.退出 1.十进制转二进制 2.十进制转八进制 3.十进制转十六进制
");
scanf("%d",&choo);
switch (choo)
{
case 1:
printf("请输入要转换的十进制数:");
scanf("%d",&num);
tran (num,2);
goto loop;
case 2:
printf("请输入要转换的十进制数:");
scanf("%d",&num);
tran (num,8);
goto loop;
case 3:
printf("请输入要转换的十进制数:");
scanf("%d",&num);
tran (num,16);
goto loop;
case 0:break;
default :
printf("输入有误!请重新输入!
");
goto loop;
}
}
拓展资料
C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。 目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。
C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。
其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
(参考资料 网络 C语言)
⑤ C语言中的八进制
除了二进制,C语言还会使用到八进制。
八进制是一种“逢八进一”的进制,它由 0~7 八个符号来描述。同样,此处通过十进制和八进制的对比来描述八进制的表示方式。
八进制基数为8,加法运算时逢八进一,减法运算时借一当八。例如,数字 0、1、5、7、14、733、67001、25430 都是有效的八进制。
当使用八进制表示十进制数字8时,由于表示八进制的符号只有 0~7,因此,根据逢八进一的规则,需要向高位进一位,表示为10。同理,使用八进制表示十进制数字16时,继续向高位进一位,表示为 20。
(5)八进位编程扩展阅读
八进制转换为十进制的源代码如下
#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)!='