bit B(byte) KB

本文最后更新于:2023年12月5日 晚上

bit

比特、位,量度信息的最小单位,状态为 0 和 1

B(Byte)

字节,1B = 8bit

KB

千字节,1KB = 1024B

MB

兆字节

为什么 32 位 cpu 只支持 4G 内存?

准确的说是 cpu 的地址总线位宽为 32 位的时候最大只能支持 4G 的寻址

寻址就是 CPU 最大能查找多大范围的地址。CPU 的寻址以字节为单位 (字节是最小可寻址单位)

32 位 CPU 一次只能处理 32 位的数据(就是 4 个字节),2 的 32 次方 bit=4G,所以 32 位 CPU 支持的最大寻址空间就是 4G(不考虑使用 PAE——物理地址扩展技术),如果插了一根 8G 的内存条,超过 4G 的内存部分跟不用不到

C 语言中各个变量占用的内存大小

https://blog.csdn.net/sinan1995/article/details/79577106

  • 16 位编译器

    char/unsigned char :1字节
    char*:2字节
    short int:2字节
    int/unsigned int:2字节
    long int:4字节
    float:4字节
    double:8字节
  • 32 位编译器

    char/unsigned char :1字节
    char*:4字节
    short int:2字节
    int/unsigned int:4字节
    long int:4字节
    float:4字节
    double:8字节
    long long:8字节
    long double:12字节
  • 64 位编译器

    char/unsigned char :1字节
    char*:8字节
    short int:2字节
    int/unsigned int:4字节
    long int:8字节
    float:4字节
    double:8字节
    long long:8字节
    long double:16字节

int 占用四字节,32 位,范围 -2^31 \~ 2^31-1,而 long int 根据编译器不同,表示的范围从 32 位到 64 位,它可以保证至少 32 位。

long int 不是标准的 64 位整型,而long long 是,它在所有的编译器中都表示 64 位整型,表示范围 -2^63 ~ 2^63-1

关于 __int64:
在 C/C++中,64 为整型一直是一种没有确定规范的数据类型。现今主流的编译器中,对 64 为整型的支持也是标准不一,形态各异。一般来说,64 位整型的定义方式有 long long 和__int64 两种(VC 还支持_int64),而输出到标准输出方式有 printf(“%lld”,a),printf(“%I64d”,a),和 cout << a 三种方式。

关于 float 和 double 的表示范围和精度:

float: 1bit(符号) + 8bit(指数位) + 23bit(尾数位)
double: 1bit(符号) + 11bit(指数位) + 52bit(尾数位)

浮点数值 = (符号)(1.尾数) * (2)^(带符号的指数)
上述公式的 1 和 2 就是这么规定的,不必太在意


bit B(byte) KB
http://blog.lujinkai.cn/运维/基础/bit B(byte) KB/
作者
像方便面一样的男子
发布于
2020年12月9日
更新于
2023年12月5日
许可协议