⑴ 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。
(1)c语言六进制输出扩展阅读:
C语言是国际上广泛流行的、很有发展前途的计算机高级语言。它适合作为系统描述语言,即可用来编写系统软件,也可用来编写应用软件。
早期的操作系统等系统软件主要是用汇编语言编写的(包括
UNIX操作系统在内)。由于汇编语言依赖于计算机硬件,程序的可读性和可移植性都比较差。为了提高可读性和可移植性,最好改用高级语言,但一般的高级语言难以实现汇编语言的某些功能(汇编语言可以直接对硬件进行操作),例如:对内存地址的操作、位操作等)。人们设想能否找到一种既具有一般高级语言特性,又具有低级语言特性的语言,集它们的优点于一身。于是,C语言就在这种情况下应运而生了。
⑵ 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--)
(2)c语言六进制输出扩展阅读:
十进制转十六进制的具体方法:
对于整数部分,用被除数反复除以16,除第一次外,每次除以16均取前一次商的整数部分作被除数并依次记下每次的余数。另外,所得到的商的最后一位余数是所求二进制数的最高位。
对于小数部分,采用连续乘以基数16,并依次取出的整数部分,直至结果的小数部分为0为止。故该法称“乘基取整法”。
10进制数转换成十六进制数,这是一个连续除以16的过程:把要转换的数,除以16,得到商和余数,将商继续除以16,直到商为0。最后将所有余数倒序排列,得到数就是转换结果。
⑶ C语言输出16进制数
#include<stdio.h>
intmain()
{
intn;
scanf("%d",&n);
printf("0x%x ",n);
return0;
}
⑷ c语言怎么样实现6进制
把39转换为6进制:
#include<stdio.h>
voiddec2n(intx,intn)
{if(x>=n)dec2n(x/n,n);
printf("%c",x%n>9?x%n+55:x%n+48);
}
intmain()
{intx,n;
scanf("%d%d",&x,&n);
dec2n(x,n);
return0;
}
⑸ c语言编程输入一个整数,输出它的十六进制、八进制、十进制、科学计数法
//C语言:
#include<stdio.h>
intmain(void)
{
inta;
scanf("%d",&a);
printf("8进制:%o 10进制:%d 16进制:%x 科学记数法:%e",a,a,a,a);
return0;
}
//C++:
#include<iostream>
usingnamespacestd;
intmain()
{
inta;
cin>>a;
cout<<endl;
cout<<"8进制:"<<oct<<a<<endl;
cout<<"10进制:"<<dec<<a<<endl;
cout<<"16进制:"<<hex<<a<<endl;
return0;
}
⑹ c语言输入十进制(long),以二、八、十六进制输出的程序
这个程序写的真不错,很简明,标记一个。
他的算法思想在于:先采用除“base”取余(所有的余数都会小于“base”),然后,再按这些余数的倒序输出就完成了数据的10进制与其它进制的转换。(如果你理解10转二进制,以上话你就能明白)
char b[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; //这里是定义一个字符数组,用来输出余数表示的值
int c[64],d,i=0,base;
long n;
printf("enter a number:\n"); scanf("%ld",&n);
printf("enter new base:\n"); scanf("%d",&base);
do
{
c[i]=n%base;
i++; n=n/base;
}while(n!=0);
printf("transmite new base:\n");
for(--i;i>=0;--i)
{
d=c[i]; //以该余数为下标,去数组中找其对应的值。如5对应的就是‘5’ , 10就会对应A,当然只有超过10进制的base数,才会出现A以上的数值。
printf("%c",b[d]);
}
⑺ C语言写程序任意输入一个小写字母,分别按 八进制,十进制,十六进制,字符格式输出
#include "stdio.h"
void main()
{
char a;
printf("请输入一个小写字母:");
scanf("%c",&a);
printf("八进制输出:%o\n十进制输出:%d\n十六进制输出:%x\n字符格式输出:%c\n",a,a,a,a);
}
结果:
⑻ c语言编程:输出十进制对应的八进制和十六进制值
#include<stdio.h>
int main(){
int n;
scanf("%d", &n);
printf ("0%o 0X%X\r\n", n);
}