1.数据类型
-
整型
-
整型所占字节
-
int
-
4字节
-
unsigned int
-
0~2^32-1
-
-
signed int
-
-2^31~2^31-1
-
-
-
-
short
-
2字节
-
unsigned short
-
0~65535
-
-
signed short
-
-32768~32767
-
-
-
-
long
-
8字节
-
unsigned long
-
0~2^32-1
-
-
signed long
-
-2^31~2^31-1
-
-
-
-
long long
-
8字节
-
unsingned long long
-
0~2^32-1
-
-
signed long long
-
-2^31~2^31-1
-
-
-
-
-
整型数据的存储
-
字节顺序
-
大端模式
-
设计决定
-
eg:51单片机
-
-
-
小端模式
-
高位数据放在高地址处,低位数据放在低位地址处。
-
-
-
整数向上/向下溢出:进行一定运算结果超出储存范围,储存范围是个圈。
-
整数溢出问题
-
-
unsigned short int 0~65535
-
当i=65535时 下次递增操作会使i变成0
-
这个while语句和for语句相同
-
-
-
signed short int -32768~32767 32768 0 1000 0000 0000 0000 原码 -32768 1 1000 0000 0000 0000 原码 1 0111 1111 1111 1111 反码 1 1000 0000 0000 0000 补码 1 0111 1111 1111 1111 补码+1 00111 1111 1111 1111 前面超出的部分去掉
-
-
-
-
-
整数的二进制转换
-
正数
-
原码 反码 补码 都相同
-
举例 122 0111 1010 结果0x7a
-
-
-
负数
-
原码
-
原码0000 0000 1111 1010
-
-
反码 符号位不变 其余按位取反
-
反码1111 1111 1000 0101
-
-
在反码的基础上加1
-
补码1111 1111 1000 0110 结果0xff86
-
-
-
注意 计算机系统中所存储的是补码
-
对补码求补码得原码
-
-
-
整型的取值范围:
-
取值决定应用范围
-
-
-
浮点型
-
浮点所占字节数
-
float 单精度 4字节
-
double 双精度 8字节
-
-
浮点数的二进制转换
-
将十进制形式小数转化成二进制形式小数
-
整数部分 除2取余法
-
列子:12.25
-
12/2=6.。。。。0 6/2=3.。。。。0 3/2=1.。。。。1 1/2=0.。。。。1
-
-
小数部分 乘2取整法
-
0.25*2 = 0.5 。。。 0 0.5 *2 = 1.0 。。。。1
-
二进制小数1100.01
-
-
-
将二进制小数写成科学计数法形式
-
1100.01 => 1.10001 *2^3
-
-
按照IEEE 754存储
-
float
-
1 | 8 | 23 符号位|指数位| 尾数位 指数位要加偏移量127 0 | 3+127 | 10001 2^(指数位-1)-1 0100 0001 0100 0100 0000 0000 0000 0000 4 1 4 4 0 0 0 0
-
-
double
-
0 | 11 | 23 符号位 | 指数位 | 尾数位 尾数位更多精度更高 0 | 3 +1023 | 10001 2^(指数位-1)-1
-
-
-
-
浮点式相等判断
-
代码中出现的不论是变量,还是常量 他们一定有其对应的数据类型
-
浮点数要进行相等的判断时 前提必须是同种精度
-
0.9是按double来存的,但都是double,所以相等
-
常量一般都有默认的数据类型 浮点型常量默认识别位double类型 整型常量默认识别为 int型 超过int范围则会识别为long
-
显式的指定常量的类型
-
123 int 123L long 123LL long long 1.23 double 1.23f float 1.23L long double
-
-
接近问题
-
当我们对0.9进行乘2取整法时 会发现结果无限循环
-
0.9*2=1.8 1 0.8*2=1.6 1 0.6. *2=1.2 1 0.2. *2=0.4 0 0.4*2=0.8 0 0.8*2=1.6 1 0.6*2=1.2 1 无限循环 永远接近 但达不到
-
这是因为double尾数比float多,所以比float更接近0.9
-
-
如果想打印浮点数的地址
-
-
-
字符型
-
ASCLL码
-
0~32控制字符 并没有一个符合形式 而是对应一种控制效果 48~57对应的是 数字字符 0~9 65~90 大写字母'A'~'Z' 97~122 小写字母 'a'~'z'
-
-
与整型的关系
-
char可以当成小整型,可以把它当成一个整数类型 所以会有unsigned char 0~255 和 signed char -128~127
-
char字符之间相互转换
-
-
2.变量
-
变量
-
变量在程序运行中,其值能被改变。常量则相反。定义一个变量即为在内存中开辟一片空间,空间大小依据变量类型来定义。
-
举例: int a; int为变量类型,a为变量名。开辟了名为a的空间。
-
-
变量名
-
组成
-
数字,字母,—(下划线)
-
-
规则
-
数字不能做开头
-
字母区分大小写
-
不能与关键字(eg:main)重名
-
不建议与预处理命令等二级关键词重名(eg:include)
-
不建议与系统库函数同名(eg:printf)
-
-
-
变量的初始化和赋值
-
初始化:int a = 123
-
定义同时赋值
-
-
赋值:int a; a=123;
-
赋值
-
-
-
3.运算符
-
运算符
-
sizeof
-
功能:计算机运算数对应的数据类型大小,返回的是字节的个数。
-
-
printf(" f=%#x\n ");
-
打印数据存储位置
-
-
4.进制转换
-
进制转换
-
十进制
-
十转N
-
除N取余法
-
-
N转十
-
加权求和法
-
-
-
二进制
-
二转八
-
一位八进制数相当于三位二进制数
-
-
二转十六
-
一位十六进制数相当于四位二进制数
-
-
-
标签:0000,字节,int,double,常见,数据类型,long,C语言,1111 From: https://blog.csdn.net/weixin_62636532/article/details/144703061