001_C语言的课堂笔记(数据类型)

        // 给定半径r = 37
	    // 输出圆的面积和周长,小数点后保留2位
	    // PI = 3.14
	    int r = 37;
	    float pi = 3.14;
	    printf("%.2f\n", pi*r*r);
	    printf("%.2f\n", pi*r*2);
	    return 0;

整型

  • 无符号整型
    直接存储数值的二进制

    • unsigned short(2) 0 ~ 2^16 -1
    • unsigned int(4) 0 ~ 2^32 -1
    • unsigned long(4) 0 ~ 2^32 -1
    • unsigned long long(8) 0 ~ 2^64 -1
  • 有符号整型
    补码的形式存储在内存中的,最高位存储符号位

    • 正整数 补码、反码就是原码本身
    • 负整数
      • 原码:最高位为符号位1,数据位为二进制形式
      • 反码:符号位不变,数据位按位取反
      • 补码:反码+1
    • short -2^15 ~ 2^15 -1
    • int -2^31 ~ 2^31 -1
    • long -2^31 ~ 2^31 -1
    • long long -2^63 ~ 2^63 -1
  • 数据溢出
    存储的真实数值超过了数据类型所能表示的有效范围

    • 最大值 +1 => 最小值
    • 最小值 -1 => 最大值
      字符型
      内存中存储的是字符对应的ASCII码,也就是正整数
  • 字母大小写转换
    小写字母 + (‘A’ - ‘a’) => 大写字母
    大写字母 + (‘a’ - ‘A’) => 小写字母

  • 数字字符 => 数型
    ‘7’ - ‘0’ => 7

  • 转义字符
    ‘\n’ ‘\r’ ‘\’ ‘’’ ‘"’

实型(浮点数类型)
3.25(十进制)
=> 11.01(二进制)
=> 转换成标准形式,小数点前面为1后面乘以2的指数
1.101 * 2^1
阶码:float类型阶码8位
1(指数) + 127 => 128(阶码)
尾码:float类型尾码23位
101从高位逐位放入,低位补0

1 | 1000 0000 | 1010 0000 0000 0000 0000 000

  • 浮点数类型无法精确表示数据(2,4,6,8,)
    3.2 => 11.0011001100110011…

  • 浮点数类型无法直接判等
    0.1 + 0.2 == 0.3
    0.1 0.000110011001100…
    0.2 0.001100110011001…
    0.3 0.010011001100110…
    假设尾码只有4位。
    0.1 0.00011001
    0.2 0.0011001
    0.3 0.010011

    0.1+0.2 0.010010 (11)舍去

  • float 单精度浮点数 4字节
  • double 双精度浮点数 8字节
  • long double 长双精度浮点数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值