zoukankan      html  css  js  c++  java
  • 关于数值格式以及其在64位机上所占的比特数

    unsigned char,short,int ,long在16位32位和64位机器的长度

    转自 http://blog.sina.com.cn/s/blog_8c612cae01012arj.html

    (2012-02-08 22:23:55)
    标签:

    杂谈

    最近经常见到这些unsigned char,short,int ,long的定义,有时真的不确定位长是多少,上网查,又话是跟编译器有关,没一个准确答案。于是只好自己找答案,其实用一个最简单地方就可以知道其长度,就是用sizeof函数。于是我写了如下一段:

    1. unsigned char uint8 = 0;
    2. signed char int8 = 0;
    3. unsigned short uint16 = 0;
    4. signed short int16 = 0;
    5. unsigned int uint32 = 0;
    6. signed int int32 = 0;
    7. float fp32 = 0;
    8. double fp64 = 0;
    9. unsigned long ulong = 0;
    10. printf("unsigned char is %d bit\n\r", sizeof(uint8)*8);
    11. printf("signed char is %d bit\n\r", sizeof(int8)*8);
    12. printf("unsigned short is %d bit\n\r", sizeof(uint16)*8);
    13. printf("signed short is %d bit\n\r", sizeof(int16)*8);
    14. printf("unsigned int is %d bit\n\r", sizeof(uint32)*8);
    15. printf("signed int is %d bit\n\r", sizeof(int32)*8);
    16. printf("float fp32 is %d bit\n\r", sizeof(fp32)*8);
    17. printf("double fp64 is %d bit\n\r", sizeof(fp64)*8);
    18. printf("unsigned long is %d bit\n\r", sizeof(ulong)*8);

    复制代码

    编译运行后,答案出现了:

    1. unsigned char is 8 bit
    2. signed char is 8 bit
    3. unsigned short is 16 bit
    4. signed short is 16 bit
    5. unsigned int is 32 bit
    6. signed int is 32 bit
    7. float fp32 is 32 bit
    8. double fp64 is 64 bit
    9. unsigned long is 32 bit

    复制代码

    (上述结果是在arm-gcc编译得出)
    令我感到意外的是,原来以为unsigned long是64位的,而其实它是32位而已,千万别被long这个单词迷惑了。
    不过,我又感到迷惑的是unsigned int 和unsigned long既然都是32位,那它们有什么区别呢?

    在32位系统中
    Long int = int = 32bit short int = 16bit
    在16位系统中
    short int = int = 16bit long int = 32bit
    总之: short int = 16bit long int = 32bit
    解决可移植性

  • 相关阅读:
    php学习day12---数据库(4)数据表的连接查询,子查询和联合查询
    php学习day11---数据库(3)数据表的增删改查
    php学习day10---数据库基础2
    php学习day9---数据库的基本知识
    php学习day8---数组的知识
    php学习day7--函数的相关知识
    资源相互引用时 需添加 PerformSubstitution=True
    C++完美实现Singleton模式[转]
    shell
    AJAX enabled & disabled
  • 原文地址:https://www.cnblogs.com/finallyliuyu/p/2617795.html
Copyright © 2011-2022 走看看