数据类型的大小范围及强制性转换 C语言
基本单位在计算机科学中, bit、byte(字节)、KB、MB、GB、TB、PB 是表示数据存储容量或数据传输速率的基本单位。这些单位之间的关系如下8 bit 1 byte1024 byte 1 KB1024 KB 1 MB1024 MB 1 GB1024 GB 1 TB1024 TB 1 PBsizeof关键字和数据类型大小C语言提供 sizeof 关键字来计算一个数据类型或变量在内存中所占的字节数。* 注意: long 类型的大小在不同平台和编译器上可能不同在64位Windows上通常是4字节在64位Linux上通常是8字节。#include stdio.h int main() { printf(%zu\n, sizeof(char)); printf(%zu\n, sizeof(_Bool)); printf(%zu\n, sizeof(short)); printf(%zu\n, sizeof(int)); printf(%zu\n, sizeof(long)); printf(%zu\n, sizeof(long long)); printf(%zu\n, sizeof(float)); printf(%zu\n, sizeof(double)); printf(%zu\n, sizeof(long double)); return 0; }输出结果:1 1 2 4 4 8 4 8 8参考资料:数据类型长度和取值范围-官方介绍每种类型取值范围的计算以char为例一个字节8个比特位,signed char最小非负数000000000最大正数12701111111最小负数-12810000000为什么1000 0000不是-0呢为什么最小负数不是1111 1111-127呢这是特殊情况是1 1000 0000忽略第九位的结果理解性记忆补码可以想成一个钟最大正数127是1000 0000的上一个数别记错成128了unsinged charMAX25511111111MIN000000000charsigned:-2^7~2^7-1unsigned:0~2^8-1shortsigned:-2^15~2^15-1unsigned:0~2^15-1intsigned:-2^31~2^31-1unsigned:0~2^31-1longsigned:-2^63~2^63-1unsigned:0~2^64-1long longsigned:-2^63~2^63-1unsigned:0~2^64-1(助记signed char有7个数值位有2^7种排列组合除0外就有2^7-1个正数而负数是特殊的从-1到-1281 1000 0000局部变量与全局变量作用域生命周期变量从创建到销毁全局变量整个工程程序运行》程序结束局部变量花括号里面进入花括号》出了花括号强制类型转换这样可以把a强制转换成int类型但是你自己要想好别造成数据丢失不同类型内存大小不同