栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

嵌入式学习日志Day2:数据类型、常量变量和运算符

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

嵌入式学习日志Day2:数据类型、常量变量和运算符

gcc 进制
111 000 101 010 101       ->070525
0111 0001 0101 0101       ->0x7155
数据类型
_Bool  a;
真(非0):a = 1;a = 45;
假(0):a= 0;

整型:
1)char 
printf占位符:
无符号范围 0------2^8-1
有符号-2^7 ------+2^7-1

2)short
printf占位符:
无符号范围 0------2^16-1
有符号-2^15 ------+2^15-1

3)int
printf占位符:
无符号范围 0------2^32-1
有符号-2^31 ------+2^31-1

4)long
printf占位符:
无符号范围 0------2^64-1
有符号-2^63 ------+2^63-1

5)long long
printf占位符:
无符号范围 0------2^64-1
有符号-2^63 ------+2^63-1

无符号:
	unsigned:

sizeof();   运算符,返回类型占用的字节

浮点型:
float
printf占位符:
有符号范围:-3.4*10^-38--------3.4*10^308

double
printf占位符:
有符号范围:-1.7*10^-308--------1.7*10^308
整形在内存怎么存
 

浮点型在内存怎么存
 

十进制的数值3356可以有下列三种不同的表示形式:

十进制数  3356

八进制数  06434 

十六进制数 0xd1c
截断是什么?
高精度强制转换为高精度时,只能取到低精度的位数,剩余部分就会丢失

​	隐式转换?
1)有符号-->无符号;2)低精度-->高精度

​	强制转换?
(数据类型)变量名
变量的命名:

1 数字 字符    _

2 第一个字符不能数字

3 不能用关键字 int char ... c语言关键字

常量

 	整型:二进制、八进制、十进制、十六进制

     浮点:1)小数型常量;2)指数型常量

     字符串:一串字符构成字符串,用英文的双引号("")括起来

     #define:标识常量,定义宏,常量名称要用大写字母,且语句结尾不能加分号(;)
变量

    变量初始化:为变量指定一个初始的值

类型转换

	            double p = 5/10的输出结果为:0

​                5.0/10的输出结果为:0.5

​                (fioat)(5/10)的输出结果为:0.00

​              (float)5/10的输出结果为:0.5

int a = 96;

float b = (float)a
问题:

int a = 855;

char b = a;

原码反码补码
正数

负数

运算符
  • 算术运算符
1.+:1)单目正;2)双目加

2.-:1)单目负:2)双目减

3.*:乘

4./:除和整除 
【注】当除数和被除数为整型时,结果只保留整数部分而自动舍弃小数部分,0不能作为除数;除数和被除数只要有一个浮点数,进行浮点数相除

5.%:取模(取余)
【注】两个操作数只能是整数,不能是浮点数
  • 逻辑运算符
真 || 真 = 真
假 || 真 = 真
假||假 =假

真&&真 = 真
假&&真 = 假

!真 = 假
  • 位运算符
~111111   :000000

&      : 101010&100000 = 100000

|        :1011 |  0100 =1111

^        :1010 ^ 1010 =  0000
		 10101 ^ 00000 = 10101          不变
          101011 ^ 111111  = 010100      取反
          
>>     : 11101010  >> 1    ->  11110101
         0011 0101 >> 1   00011010
  
<<    :    
  • 复合运算符
+=
-=
*=
/=
%=
&=
^=
|=
  • 逗号运算符
1.同时进行赋值运算,用逗号隔开。如:int x = 1,y = 2;
2.在括号内,用逗号隔开,从左往右依次执行运算,最后括号的值为最后一个变量的赋值

作业
1.	把06764转为二进制
--> 110 111 110 100

2.	0x9A564转为二进制
--> 1001 1010 0101 0110 0100

3.  写出-9542补码,895的补码
1)-9542--> 1101 1010 1011 1010
2)895--> 0011 0111 1111

4.	补充完上面数据类型笔记,每个类型多少字节,数值范围
见上

5.  用sizeof输出各个类型的所占字节
已练习

6.  整型浮点型在内存大致怎么存?
1)整型以补码的形式存储,正数的补码与原码相同,负数的补码是反码+1,符号位不动;
2)浮点型以1个bit存储符号位,并分为指数位和有效数字位,其中单精度浮点型有4字节,双精度浮点型有8字节
	(1)单精度浮点型的指数位有8bit,有效数字位有23bit;
	(2)双精度浮点型的指数位有11bit,有效数字位有52bit。
	
7.  弄清变量和常量
见上

8.  弄清类型转化的问题
见上

9.  补充运算符的笔记
见上

10. printf("%f",562354);会是什么?
1)简单理解整型不可以用浮点转化%f表达;
2)复杂理解,常量传进printf时,因为其为整型,不会转化成double型数据,而%f寻的是64位内存,就会将562354转化成0000000000562354当成浮点型输出。而因为阶数为0,所以在转化二进制时,为1.#*2^-1023,数值非常小,所以只能显示0.000000

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/893215.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号