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

C语言如何定义一个16进制数,第1张

例:

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&ltstdio.h&gt

int main(void)

{

long long a,b,result

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

result=a+b

if(result&gt=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"

数字在计算机中是按补码存储的。

何为补码 ?

先看什么是反码,反码是把原码按位取反得到的

比如在32位机上1的原码是(十六进制) 0000 0001,那么它的补码是

1111 1110。

补码:正数的补码就是其反码, 负数的补码是其原码按位取反,并在末位加一,所以

1 的补码也是 1111 1110

而-1 的补码 是 1111 1110 再末位加1, 变成 1111 1111

即32位机器上-1的补码是 1111 1111 1111 1111 1111 1111 1111 1111

换算成十六进制就是ffff ffff


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11668363.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存