C++基础学习笔记6 - 整数的存储


#include//带符号整数在内存中的存储

void main()

{

//所有整数类型 分两种

//无符号整数  也就是 只有 正整数(+) 和 零(0)

//有符号整数  也就是 有 负数(-) 正整数(+) 和 零(0)

//正整数 在内存中的存储 就是其 二进制形式

//负数 在内存中的存储 就是 其绝对值的二进制形式 取反 再加1

//比如

int a = 10;

/*

10 的二进制 就是 1010  单字节补全 0000 1010

int类型 4字节  补全  00000000 00000000 00000000 00001010

按照低字节优先规则存储 00001010 00000000 00000000 00000000

*/

int b = -10;

/*

由于 10 是负数 所以 会取其绝对值

按照int类型 4字节补全 其绝对值为:

00000000 00000000 00000000 00001010

按位 取反 (每一位 0变1  1变0)

11111111 11111111 11111111 11110101

加 1

11111111 11111111 11111111 11110110

FF  FF  FF  F6

按照低字节位优先 存入内存中

F6 FF FF FF

*/

/*

假设 内存中有数据  55 66 77 88

该数据是否是负数 就先取出数据(先取得的是低字节 注意顺序)

88 77 66 55

10001000 01110111 01100110 01010101

最高位是 1  为负数

先减 1

10001000 01110111 01100110 01010100

按位取反

01110111 10001000 10011001 10101011

转十进制 并添加负号

-2005440939

*/

int c = -2005440939;

system("pause");

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容