C语言如何定义一个16进制数

想用SCANF输入一个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输出为小写字母

}

参考:

最大数字是15位,没有超过__int64能表达的最大数。__int64最大能表示16位十六进制数。所以直接进行加减就行了,需要注意的是输入输出的格式以及十六进制表达负数的时候显示的是补码。

#include<stdio.h>

int main(void)

{

long long a,b,result;

while(scanf("%llx%llx",&a,&b)!=EOF){

result=a+b;

if(result>=0)

printf("%llX\n",result);

else

printf("-%llX\n",-result);

}

return 0;

}

long long 类型格式字符:


扩展资料:

return用法:

作用是结束正在运行的函数,并返回函数值。return后面可以跟一个常量,变量,或是表达式

函数的定义一般是这样的,例如:

int a(int i)//第一个int是函数的返回值的类型,也就是return后面跟的值的类型,a是函数的名称,括号里的是传递给函数的参数,int是参数的类型,i是参数的名字

{

...//省略函数体内容

return b;//b必须与函数头的返回值一致(此处为int型)

}

简单函数举例:

int addOne(int b)

{

return b+1;

}

该函数的作用是取得一个数,将这个数加上1,再将结果返回

调用时这样:

int result=addOne(2);//此时result的值为3

函数括号里的参数也可以为变量或能算出值的表达式

以上就是一个基本的函数,一般的函数都有返回值,也就是return后面跟的值,返回值可以为各种数据类型,如:int,float,double,char,a[](数组),*a(指针),结构或类(c++)

但不是所有函数都有返回值,如果某个函数无返回值,那么返回值的位置则为“void”关键字,此时函数体中无返回值,即无return的值。但是函数中也可出现return,即一个空的return句子,其作用是使函数立即结束,如

void print()//括号中为空表示无传递参数

{

printf("a");

printf("b");

return;//函数执行到此处结束

printf("c");

}//该函数只执行到return语句处,即屏幕上输出的为"ab"

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-08-18
整型数据的十六进制数表示,
unsigned int hex_val = 0x123; //定义了一个整型变量并赋以初始值为一个十六进制常量。
if (scanf("%x", &hex_val) != EOF) {
printf("它的八、十进制分别=%o、%d\n", hex_val, hex_val);
}
你也可以输入一个由0-9-A-F中组成的连续的字符序列,然后检查它是否为合法的十六进制数格式,最后,如果需要,可用函数strtoul将这个字符串指针作为base参数转换成数值。
第2个回答  2013-04-20
unsigned long int value; _Bool hex_value = scanf("%x", &value); //用说明转换%xif(hex_value) //正确输入了一个合法的十六进制值 .... 或者用字符串:#include <ctype.h>#include <string.h>const int LEN = 32;char hexstr[LEN + 1]; fgets(hexstr, LEN, stdin);hexstr[strchr(hexstr, '\n') - hexstr] = '\0';// 检查是否是合法的十六进制串,size_t i = 0;while(hexstr[i] != '\0') { if(strchr("0123456789AaBbCcDdEeFf", hexstr[i]) == NULL) // or use (! isxdigit(hexstr[i])) break; ++i;}bool hexValue = (hexstr[i] != '\0');if(hexValue) ...//随便写下,您可能要涉想问到如何保证一个十进制数的数字编码具有连续的值,那么可以用下面这种惯用法实现(无溢出检查)数字转换功能 ^ ^,给你写出来int chtoi(const char ch){ if('0'<=ch && ch <='9') //or use isdigit(ch) return (ch - '0'); else return (-1);}for(value = 0; isdigit(*sc); ++sc) {
value = value * 10 + chtoi(*sc);}
第3个回答  推荐于2017-11-28
没有直接定义的
八进制,在赋值的数字前面加0 如int n=010; 即把一个八进制10复制十进制变量n
十六进制,在赋值的数字前面加0x 如int n=0x10;即把一个十六进制10复制十进制变量n本回答被网友采纳
第4个回答  2013-04-20
scanf("%x",&a);

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则输出...

c语言怎样定义并输入一个16进制数?
1、C\/C++规定,16进制数必须以 0x开头。比如 0x1表示一个16进制数,而1则表示一个十进制,0xff,0xFF,0X102A,等等.其中的x不用区分大小写。C\/C++中,10进制数有正负之分。比如12表示正12,而-12表示负12。但8进制和16进制只能表达无符号的正整数,如果在代码中写-0xF2,C\/C++并不把它当成一...

16进制数是怎样表示的?
我用C语言来回答这个问题。16位就是一个2字节整数。unsigned short hex=0x1234;\/\/定义一个2字节整数 unsigned char low = hex & 0xff; \/\/取低8位 也就是0x34 unsigned char hight = hex >> 8; \/\/取高8位 也就是0x12 printf("low=0x%x,hight=0x%x\\n",low,hight);\/\/打印结果...

c语言中16进制数怎么表示?
C语言中是用"OX"开头表示是十六进制数 ①十进制整数。例如,123、一456、0。②八进制整数。以0开头的整数是八进制数。例如,0123表示8进制数123<8),等于十进制数83。③十六进制整数。以ox或0x开头的整数是十六进制数。例如,0x1.23或0Xl 23表示十六进制数 这里12转换后等18 即16+2 ...

C语言程序解释 x=0xdef; printf("%4d\\n"x); printf("%4o\\n"
x=0xdef; \/\/定义十六进制数def赋值给x。Ox是十六进制标识符。printf("%4d\\n"x);\/\/以十进制形式输出结果。结果为3567 printf("%4o\\n"x);\/\/以八进制形式输出结果。结果是6757 printf("%4x\\n",x);\/\/以十六进制形式输出结果。结果为def ...

C语言写程序时如何定义一个十进制的数和十六进制的数,假如a=5,这个数 ...
a = 5; 默认是十进制 a = 0x5; 加0x是十六进制

c语言中的十六进制数是什么意思?
C99 里16进制浮点数记数法。类似E,但不同。数以0x开头(数字0字母x),然后是16进制浮点数部分,接着是p,后面是以 2为底的阶码。例如:0xb.1ep5 其中:b.1e 是16进制浮点数, 乘后面的p5。p5 等于 2的5次方(10进制512)。所以化成十进制:(11+1\/16.0+14\/256.0) * 512.0。

C语言怎么定义一个二进制数
C语言中没有 “二进制数”这种类型,所以没办法直接定义;但可以直接定义16进制数。例:int main(){ int a;scanf("%p",&a);\/\/16进制数输入%p是输入一个十六进制的数scanf("%llx",&a);也可以输入十六进制并且比较正规 printf("%d",a);\/\/十进制输出%d是输出一个十进制的数 printf("0x%x",...

C语言中16进制的表示方法
d 代表十进制 o 代表八进制 x 代表十六进制 u 无符号十进制数 e 以科学记数法表示 o 代表带前缀o的八进制 x 代表待前缀ox的十六进制 \\0oo 八进制值(o表示一个八进制数字)\\xhh 十六进制值(h表示一个十六进制数字)谢谢

C语言编程:写一个函数,输入一个16进制数,输出相应的10进制数。
include<conio.h> include<string.h> define N 1000 char str[N];int a[N],b[N];int main(void){ void zsh();long ycl();int i,n;do{ printf("请输入一个十六进制数:\\n");scanf("%s",str);for(i=0,n=0;str[i]!='\\0';i++)if(str[i]<'0'||(str[i]>'9'&&str[i...

相似回答