基本数据类型及注意事项

什么是数据(data)?
数据在我们的生活中随处可见

如:
姓名 一笑奈何
身高1.78m
体重70kg
毕业学校 北京大学

这样看来 数据有小数 整数 字符之分
那C语言中的基本数据类型又是怎样的呢?
在这里插入图片描述
为什么要分数据类型?
一方面为了节约内存 另一方面为了方便访问
但是在计算过程中类型带来了很多麻烦和隐藏的问题

  1. 数据溢出
    1.整数字面值如果是[-231,231 -1] 默认是int类型
    int类型数据运算时得到的结果是int类型

    2.不同的数据类型进行运算
    低字节的数可以隐式转换成高字节的数据
    对于有符号的数扩充 符号位
    对于无符号的数扩充
    所有数据都是有字节宽度大小的 在赋值在运算过程中 都可以发生变化
    隐式类型转换
    char–> int --> long --> double
    float --> double
    short --> int
    signed --> unsigned
    把一个整数赋值给char类型变量,只会把整数最低8个二进制(最低一个字节)数据赋值给char变量

char如果要以%d %u的格式输出 进行扩展 补最高位(符号位)
char变量赋值给 int/unsigned 扩展位 补符号位
unsigned char如果要以%d %u的格式输出 进行扩展 补0
unsigned char变量赋值给 int/unsigned 扩展位 是0

 char c = 128;//0000 0000 ... 1000 0000 
 printf("%d\n",c);//1111 1111 .... 1000 0000 = -128
 printf("%u\n",c);//1111 1111 .... 1000 0000 = 4294967168
 unsigned char c = 128;//0000 0000 ... 1000 0000 
 printf("%d\n",c);//0000 0000 .... 1000 0000 = 128
 printf("%u\n",c);//0000 0000 .... 1000 0000 = 128`
 3.unsigned 和 signed类型数据进行运算时 把 signed 数据转换为 unsigned
  int a = -16;
  unsigned int b = 10;
  if(a+b>=0){// 恒成立  int+unsigned 结果为 unsigned
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值