美文网首页
[第9期] 它究竟是什么样的(二)

[第9期] 它究竟是什么样的(二)

作者: 坑儿里的小朕 | 来源:发表于2019-04-30 17:03 被阅读0次

    ✌大家好,这里是小磊说书,我是小磊,欢迎大家来听我说书!言归正传...

      ➡ ,书接上文..

    C语言课程
    ⭐ 进制

      进位计数的制度(规定,规则,规律),是一种计数方法;比如:计算机中的二进制,十进制,八进制,十六进制等等,也可以自己定义进制:三进制,五进制,…

    ⭐ 类型转换

      C语言的类型比较多,因此不同情况需求的数据类型也不同,这样就需要进行类型转换,常见的类型转换可以分为自动(隐式)类型转换和强制类型转换;前者一般来说编译器会悄悄的给处理了,相对安全,但不一定是需求需要的结果,后者需要开发人员去人工处理,可以得到需求需要的结果,但安全系数及精度会下降。


    🍴接下来,对这两期的内容进行详细讲解 ... ...

    ⭐ 整数类型
    类型 说明
    signed short 有符号短整数类型
    unsigned short 无符号短整数类型
    signed int 有符号整数类型
    unsigned int 无符号整数类型
    signed long 有符号长整数类型
    unsigned long 无符号长整数类型
    ⭐ 类型大小
    • sizeof

      原型:

        sizeof unary-expression
        sizeof ( type-name ) 
        sizeof ( unary-expression ) /*补充*/
    

      说明:
       1. type-name是类型名称
       2. unary-expression是元表达式,元是参数个数的单位
       3. sizeof是运算符,不是函数(虽然它有一对小括号)
       4. 单位:字节

      源码:

        printf("size of signed short: %d\n", sizeof(signed short));
        printf("size of unsigned short: %d\n", sizeof(unsigned short));
        printf("size of signed int: %d\n", sizeof(signed int));
        printf("size of unsigned int: %d\n", sizeof(unsigned int));
        printf("size of signed long: %d\n", sizeof(signed long));
        printf("size of unsigned long: %d\n", sizeof(signed long));
    
    • 各个类型取值范围对应表
    类型 取值范围
    signed short [-2^15, 2^15-1]
    unsigned short [0, 2^16-1]
    signed int [-2^31, 2^31-1]
    unsigned int [0, 2^32-1]
    signed long [-2^31, 2^31-1]*
    unsigned long [0, 2^32-1]*
    • 各个类型的极限值(宏)及溢出问题
    类型 极限值(宏)
    signed short [SHRT_MIN, SHRT_MAX]
    unsigned short [0, USHRT_MAX]
    signed int [INT_MIN, INT_MAX]
    unsigned int [0, UINT_MAX]
    signed long [LONG_MIN, LONG_MAX]*
    unsigned long [0, ULONG_MAX]*

    说明:
     1. 宏定义,VS中声明文件:
      X:\...\Microsoft Visual Studio 9.0\VC\crt\src\limits.h

        #define SHRT_MIN    (-32768)        /* minimum (signed) short value */
        #define SHRT_MAX      32767         /* maximum (signed) short value */
        #define USHRT_MAX     0xffff        /* maximum unsigned short value */
        #define INT_MIN     (-2147483647 - 1) /* minimum (signed) int value */
        #define INT_MAX       2147483647    /* maximum (signed) int value */
        #define UINT_MAX      0xffffffff    /* maximum unsigned int value */
        #define LONG_MIN    (-2147483647L - 1) /* minimum (signed) long value */
        #define LONG_MAX      2147483647L   /* maximum (signed) long value */
        #define ULONG_MAX     0xffffffffUL  /* maximum unsigned long value */
    

     2. 溢出问题
      根据编译器不同,有些编译器会按照补码体现;有些编译器会按照取余进行体现;有些编译器会截取;有些编译器不允许溢出,溢出则死程序;有些编译器会进行类型自动隐式转换;有些时候编译器会自动按照自己的规则进行优化;情况很多,相对比较复杂,因此要具体情况具体分析,当然,在优化专题中我们会专门去解析这一类问题(最好解决溢出问题的办法:编码人员尽量不要溢出)。


    ✨ 更多精彩,期待中...

      👉 详情请参考视频解说! 📄n525
      ✉ liuxiaoleivc@163.com
      ℹ Wechat: liuxiaoleione(添加时请注明'简友')


    版权声明®

      版权所有,翻版必究!
      小磊说书系列课程文本及表格均为原创作品,可以转载或学习,但要注明作者和出处,然文章中图片均链接自百度网页,未经作者许可禁止一切商用活动!

    相关文章

      网友评论

          本文标题:[第9期] 它究竟是什么样的(二)

          本文链接:https://www.haomeiwen.com/subject/vavtnqtx.html