C语言中没有 “二进制数”这种类型,所以没办法直接定义;但可以直接定义16进制数。
例:
int main(){
int a
scanf("%p",&a)//16进制数输入%p是输入一个十六进制的数scanf("%llx",&a)也可以输入十六进制并且比较正规
printf("%d",a)//十进制输出%d是输出一个十进制的数
printf("0x%x",a)//16进制输出printf("%llX\n",a)也可输出一个十六进制数如果红色部分大写X则输出十六进制为大写字母否则小写x输出为小写字母
}
扩展资料
C语言中定义整型数据的十六进制数:
unsigned int hex_val = 0x123
//定义了一个整型变量并赋以初始值为一个十六进制常量。
if (scanf("%x", &hex_val) != EOF)
{
printf("它的八、十进制分别=%o、%d\n", hex_val, hex_val)
}
//自己写的一些代码,可以运行,源代码如下,运行环境为Visual C++ 6.0,自定义函数translate()实现将二进制字符数组//转化为十进制#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<dos.h>
void translate(char * p,int m)
int main()
{
char binary[10] //二进制字符数组
int sign=0
printf("请输入二进制数(不超过十位)\n")
scanf("%s",binary)
while(binary[sign]!='\0')
{
sign++
}
printf("\n所输入的二进制数为:\n")
printf("%s\n",binary)
printf("所输入的二进制位数为:\n")
printf("%d\n",sign)
printf("该二进制数转化为十进制数为:\n")
translate(binary,sign) //调用自定义函数
return 0
}
void translate(char * p,int m)
{
double sum=0.0
while(*p!='\0')
{
sum+=ldexp(*p-'0',m-1)
m--
p++
}
printf("%d\n",(int)sum)
}