一、整形函数:
char:不确定有无符号,取决于编译器的实现。
short、int、long:
signed ~ //有符号的
unsigned ~ //无符号的
//有正负的数据可存储在有符号的变量中
//无符号的数据如:年龄,可存储于无符号的变量中
二、二进制存储数值
1.如果是有符号的数据,首位是决定正负值的。
首位为0则为正值,首位为1则为负值。
2.如果为无符号的数据,首位也是数据位。
以short为例,short类型函数具有2个字节,16个比特位。
以-1为例,则应该表示为:1000000000000001.
以char函数为例,char函数具有1个字节,8个比特位。
其中存储的直接是补码,要先翻译为反码,再进一步变为原码得出数值。
例如:char存储的二进制代码是1111 1111(补码),-1翻译为反码,即其反码为:1111 1110,其原码是,首位决定正负的数字不变,其他值改变,其原码为:1000 0001,读值即为-1.
特殊情况:负数用无符号unsigned输出时,会将原负数的补码当做原码输出为十进制。
例如
unsigned char c输出时,直接将其补码也就是1111 1111(二进制)算成255(十进制)
三、大小端字节序存储
int main()
{
int a = 0x11223344; //16进制写法
return 0;
}
vscode2019在地址中的存储是小端存储:44332211
若使用大端存储则为:11223344