一、进制转换(掌握)
十进制:基数:0~9 逢十进一
123 = 100+20+3
二进制:基数:0 1 逢二进一
0001 1
0010 2
(1)十进制数转换成二进制数
除2取余,余数倒序写
6—>0110
(2)二进制数转换为十进制数
0110 0*1+1*2+1*4=6
八进制数 基数0~7 逢8进一
023 -> 2*8 + 3*1=19
(3)八进制数转为二进制数
023
010011
(4)二进制数转换为八进制数
10101110
256
十六进制数:基数:0~9 A~F,逢十六进一
0x23 3+2*16=35
(5) 十六进制转换为二进制
0x23 -> 0010 0011
(6)二进制转换为十六进制
10110001010 ->58A
程序中多使用十进制和十六进制,为什么?
比二进制简短
为什么计算机中的数据是以二进制方式存储的?
1、硬件设计简单
2、稳定性比较高
3、符合生活逻辑
二、数据的存储(了解)
1、原码、反码、补码
三种编码方式都是以二进制形式存储。
以8位二进制位为基准,左边是高位,右边是低位。
00011001
(1)原码
最高位为符号位
正数:符号位为0
负数:符号位为1
(2)反码
正数:与原码一样
负数:符号位不变,其余位按位取反(0变成1,1变成0)
(3)补码
正数:与原码和反码一样,三码合一
负数:反码加1
1 和 -1
1 0000 0001
-1原码 1000 0001
反码 1111 1110
补码 1111 1111
1+(-1)
0000 0001
1000 0001
1000 0010
0000 0001
1111 1110
1111 1111
0000 0001
1111 1111
0000 0000
【扩展】溢出(正常和不正常),跟数据的存储范围有关系。
为什么程序中的数据采用补码的方式存储?
(1)将减法运算转换为加法运算,简化硬件设计
(2)使符号位参与运算,无需单独考虑。
整数在计算机中采用什么方式存储?
补码
计算机中的所有数据都是采用补码方式存储的吗?
不准确
2、内存中的数据
一个内存单元有 8个二进制位,也就是一个字节。
使用从0开始的连续的正数给内存单元编号,通过编号来访问内存单元。这个编号称为地址。
为什么不采用地址编号的方式访问内存单元?
(1)地址书写比较繁琐,而且容易出错
(2)很多时候我们不清楚,哪些地址可以使用
可以给某段存储空间取一个名字,然后通过名字来访问。
三、常量与变量(掌握)
1、定义:
常量:程序运行过程中,其值不能改变的量。
变量:程序运行过程中,其值可以改变的量。
变量的本质:具有名字的一块内存单元,用于存储可变的数据。
2、标识(zhi)符 identifier ID
(1)只能由数字、字母、下划线组成。
(2)首字符不能是数字
(3)不能使用关键字、保留字
(4)区分大小写
下面哪些标识符是合法的?
int 9a _a9 *bc_
ab_ AB_ 不等价
3、变量的声明、赋值、初始化
声明:类型 变量名;
赋值: 变量名 =(赋值运算符 )变量对应类型的值;
初始化: 类型 变量名 =(赋值运算符 )变量对应类型的值;
【注意】
(1)变量必须先声明,后使用。
(2)定义一个变量,如果不赋初值,其值不确定。
(3)变量可以反复赋值,其有效值为最后一次的赋值。
4、变量的类型
(1)整型
signed int 整型变量 4个字节 16位系统 2个字节
short (int) 短整型变量 2个字节
long (int) 长整型变量 32位系统 4个字节
64位 8个字节
long long 超长整型 8个字节
上面的每种整型,都有对应的无符号版本,前面加unsigned
unsigned int
(2)字符型
char (character)
unsigned char
字符型在内存中是以ASCII码方式进行存储的。
字符型变量的声明和初始化
【注】其实char也是整型,只不过占用一个字节。
【扩展】字符型常量
257
‘\n’
‘\0’
’n’
‘0’
“a”
(3)浮点型(小数)
float 单精度浮点数:范围:精确到有效数字6~8位(近似值,不确定)占用4个字节
double 双精度浮点数:范围:精确到有效数字13~18位有效数字(近似值,不确定)占用8个字节
(4)读取和打印变量的值
【读取】
格式化输入函数:scanf
格式:scanf(“格式控制符”,地址列表);
&:获取变量的地址
练习:从键盘输入一个整数,然后打印出来
【注意】
(1)scanf里面不能写字符,只能写格式化控制符
(2)输入的时候,整型%d之间可以有空格,字符型%c之间不能有空格。
【输出】
printf函数
格式:printf(“格式控制/格式控制符(%d...)”,数据列表);
格式控制部分原样输出,直到遇到%,一个%对应后面一个数据。
格式控制符
%d 十进制整数
%x 十六进制
%c 字符型
%f 单精度浮点型
%lf 双精度浮点型
%s 字符串
’n’’\n’
\n 换行
\t 制表符 tab键
保留小数点后两位
%.2f
%.2lf