• C程序设计(5)-对数据类型的补充


    整型:

    默认情况下整型是有符号的,以short型变量为例:通常占16位存储空间,最左边的一位是符号位(零或正数符号位为0、负数为1)、后十五位是数值位。n位二进制能表示的最大数为2n-1,因此15位的二进制数最大可表示为215-1,即32767,所以short型能表示0~32767之间的非负整数;又由于计算机以补码形式保存整型数据,short型对于复数能表示到-32768,因此两字节(16位)short型变量能保存的整型数值范围是-32768~32767

    对于其他的int型、long型、longlong型的整数存储同理(若为无符号型,则所有二进制位全用来保存数据,如unsigned short型最大可表示216-1,即能表示0~65535),此外其变量在机器中所占字节数也与机器位数、编译器等有关

    整型常量的默认数据类型为int,如222;若要存储为长整型可于其后加L或l,如222L;若要存储为无符号整型可于其后加U或u,如222U

    整型常量可书写为十进制,如365;八进制:0365、0123;十六进制:0x12315、0x77ccff;这些仅为书写形式,计算机内以二进制存储;输出时可使用格式控制符实现进制转换

    无符号整型运算过程中发生溢出,会将结果对2n取模(n位该变量的位数)

    浮点型:

    C语言中实数称为浮点数,浮点数的储存需要保存其符号、指数位和小数,形式如下:

    浮点型数据采用和整型数据不同的存储方式,在占用相同存储空间(如四字节)的情况下能储存的数据范围更大

    很多编译系统将浮点型常量默认存储为双精度,如:.25,默认分配8字节;若想编译系统将其按单精度处理可在数的后面加F或f,如.25f

    有的十进制小数不能转换为有限位的二进制小数,只能用接近他们的二进制小数描述,因此有时浮点数只是近似表示实数,存储时存在误差,float型浮点数精度为6~7位有效位数、double型为15~16位

    不同编译器对应的精度有差异,有效位数从第一个非零数开始计算

    对于数据的读写,尽管称读需要用相应的格式控制符,写仅需“%f”等即可,但在vs2019的编译器里输出longlong型数据时“%d”、"%ld"无法正确表示,仍需使用“%lld”格式控制符,此处存疑

    字符型:

    字符型属于整数类型

    ‘a’ - 'A' = 32

    ‘1’ = 49 != 1

    getchar()、putchar()

    scanf(" %c",&ch)

    类型转换:

      隐式类型转换:char,short--int--unsigned--long--float--double(其中,char,short--int的转换为必定的转换,其他为当运算对象为不同类型时发生的转换);

      显式类型转换:如(double)5/3;

      对于赋值运算,运算符两边数据类型不一致,自动转换为左边数据变量类型(隐式转换规则不生效)

    应用举例:

  • 相关阅读:
    MinGW GCC 7.1.0 2017年6月份出炉啦
    java面试题-框架篇九
    spring-AOP原理
    spring的bean管理(注解)
    23种设计模式(1)-单例模式
    SSH框架面试题集锦
    JQuery基础
    实现用户注册
    spring与hibernate的整合
    spring-IOC理解1
  • 原文地址:https://www.cnblogs.com/zimsky/p/12673176.html
Copyright © 2020-2023  润新知