信息的表示和处理

信息存储

  1. 数据大小

    1
    2
    3
    4
    5
    6
    7
    8
    9
    C类型      字节(32位)  字节(64位)
    char 1 1
    short int 2 2
    int 4 4
    long int 4 8
    long long int 8 8
    float 4 4
    double 8 8
    char * 4 8
  2. 移位

    假如进行x>>k,这里的k很大,实际偏移量是通过k mod v得到的

    1
    2
    3
    int lval = 0xede875 >> 32;
    int aval = 0xede875 >> 36;
    unsigned int uval = 0xede875 >> 40;

    在32位机器上

    1
    2
    3
    lval = 0xede875;            // 32 mod 32 = 0
    aval = 0xfede87; // 36 mod 32 = 4
    uval = 0x00ede8;

    几乎所有的编译器/机器都对有符号数据使用算术右移,无符号数据必须是逻辑右移