c语言实现--整数(包括负整数)转换为16进制数

一个负数在计算机里面是使用补码来存储的,同时你会发现,很多地方会用到负整数,所以掌握两者的变化非常重要。

参考博客:https://blog.csdn.net/misayaaaaa/article/details/69917144

首先对于有符号数,第一位的位置是表示的正负,为1时是负数,为0时是正数

其次,正数的原码、补码、反码一致

负数的反码是原码的数值位(也就是除了第一位的符号位之外)取反,负数的补码是反码加1 

 

在计算机中带符号的整数都是采用二进制的补码进行存储,数据在内存中始终是以二进制形式存放的,数值是以补码表示的。

 

无论32位还是64位,int都是4个字节,32位,表示的范围为-2147483648~2147483647,32为最小负整数的补码表示为:1000 0000 0000 0000 0000 0000 0000 0000

 

char str[80];
int t=-2;

sprintf(str, "Pi 的值 = %x", t);
puts(str);

具体使用c语言,就是使用函数sprintf转换为有符号16进制数。

你可能感兴趣的:(项目经验,有符号整数,16进制,转换,c语言)