继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【九月打卡】第6天 【养成记】嵌入式挑战第6天,数据的存储与类型转换

慕后端9087467
关注TA
已关注
手记 42
粉丝 2
获赞 1

课程信息


  • 课程名称:物联网/嵌入式工程师

  • 章节名:第1周之C语言中的数据的存储与类型转换


课程内容概述


1. 数据在内存中的存储

1.1 有符号和无符号

  • signed 有符号数,可省略

  • unsigned 无符号数,不可省略

signed char  a ;   //char  a;
unsinged char b;

signed int c;     //int c;
unsinged int  d;

1.2 超出范围数据的计算方法

计算机中存储的是数据的补码,如果位数超过限长,会将低位的保留,自动去除高位的数据。
所以因为此会出现比较有趣的事情。

如:

#include <stdio.h>

int main()
{
    char  a = 200; 
    printf("a = %d\n",a);  //-56
    return 0;
}

#include <stdio.h>
int main()
{
    unsigned char b = 280;
    printf("b = %d\n",b); //24
    return 0;
}

2. 强制类型转换

2.1 含义

强转类型: 采用某方方式将某种数据类型强制转换位我们需要的数据类型.
注:强转只是临时强转,本身的数据类型没有改变。

2.2 显示强转

格式: (需要强制的数类型)变量名

2.3 隐式强转

若是用户使用运算符两边的类型不匹配,并且用户没有显示的指定匹配那种类型。系统会默认触发隐式的强转,强转规则如下:

double ←←←←←←float 高


long


unsigned


int ←←←←←← char,short 低


学习心得


之前很多稀奇古怪的看似不合常理的输出,其实都有内部逻辑的,通过这两节的学习,哈哈,找到了内部的逻辑。


课程截图


图片描述

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP