关于数据的取值范围

#include <stdio.h>
#include <math.h>
int main(){

    unsigned int result = pow(2, 32) - 1;
    int result1 = pow(2, 31) - 1;

    printf("result = %u\n", result);
    printf("result1 = %d\n", result1);

    return 0;
}


// 比特位(位):cpu能读懂的最小单位,bit,b
// 字节:内存机构的最小寻址单位,Byte,B
// 我们一般情况下会遵约定俗成1Byte == 8bit,也就是一个字节等于8个比特位,但是这里只是约定俗成的,c语言种并没有明确规定这个

// 补码:
// 计算机存储所有数据均是以补码形式存储
// 正数的补码是该数的二进制形式
// 负数的补码需要通过一下几步获得:
//  1. 先取得该数的绝对值的二进制形式
//  2. 再将第一步的值按位取反
//  3. 最后将第2步的值加1

// 上面代码中,int有四个字节,所以占用32位。当有符号的时候,符号位需要占用一位,所以可以表示的数据长度位31位
// 而无符号的,则可以表示数据的位32位



关于数据的基本存储范围

posted @ 2024-07-01 23:04  影梦无痕  阅读(6)  评论(0)    收藏  举报