计算机数据表示
数值型数据
二进制、十进制、十六进制
基数:
十进制:0-9 (10个基数)
二进制:0、1
八进制:0-7
十六进制:0-9、a-f
计算机识别的是机器码,机器码用二进制表示
1)十进制转二进制:除2倒取余
8—》1000
2)二进制转十进制:基数2^权 8421法则
1011001=12^6+02^5+12^4+12^3+02^2+02^1+12^0
=64+16+8+1=89
3)十六进制转二进制:1个十六进制位等于4个二进制位
0-9、a-f:
0:0000
1:0001
2:0010
3:0011
4:0100
5:0101
6:0110
7:0111
8:1000
9:1001
a: 1010
b: 1011
c: 1100
d: 1101
e: 1110
f: 1111
0xa2f=1010 0010 1111
0xeb5=1110 1011 0101
6)二进制转十六进制:4个二进制位等于一个十六进制位。
0010 1110 1111=0x2ef
非数值型数据
字母、符号、tab键、回车、空格等在计算机的表示
定义了一个国际标准:ascii码
main ascii:查看ascii表
单引号引起来的是字符:’A’ ‘C’ ‘0’
字符 | 值 | |
---|---|---|
‘\0’ | 0 | 是字符串的结束标志 |
‘\n’ | 10 | 换行符 |
‘ ‘ | 32 | 空格 |
‘0’ | 48 | |
‘9’ | 57 | |
‘A’ | 65 | |
‘Z’ | 90 | |
‘a’ | 97 | |
‘z’ | 122 |
示例1
如何打印一个字符?用C语言打印几个字符,看是否能喝ascii编码表中的数据对应起来
示例2
‘A’转为’a’?—>’A’+32=’a’
示例3
‘0’和0区别?如何验证?
C语言32关键字
存储类型
决定变量存放的位置
auto自动型 static静态型
extern外部引用 register寄存器
数据类型
决定变量开辟的内存空间大小
char | 字符型(1) |
---|---|
int | 整型(4) |
short | 短整型(2) |
long | 长整型(4) |
float | 单精度浮点型(4) |
double | 双精度浮点型(8) |
signed | 有符号 |
unsigned | 无符号 |
int a | |
// (signed) int a |
控制语句
if、else、switch、case、break、default、while、do、for、continue、return、goto(跳转)
构造数据类型
其他
typedef重定义
void空类型(空,修饰指针,不能修饰变量;作为函数的返回值;作为函数的参数)
const常量化
sizeof计算数据所占空间大小
volatile防止被编译器优化
标识符
用于给变量名、宏定义名、结构体名、重命名、函数名等起名字
标识符的定义规则:
1.数字、字母、下划线组成
2.第一个字符不能是数字
3.不能和关键字相同
4.见名知意
如何定义变量
变量:实在程序运行过程中会发生变化的量
定义格式:
[存储类型] 数据类型 变量名
左=右:等号是赋值,将等号右边的值赋给等号左边的变量,左边只能是变量
运算符
算数运算符
||:逻辑或
都是假,是假,只要有一个是真,逻辑关系为真
截断法则:
当第一个条件满足,后边的条件不再进行判断,直接输出逻辑关系为真
!:逻辑非
假变真,真变假
若表达式为!a,当a取值为多少的时候,该表达式为真?a=0
a==0
a>b>c ==> a>b && b>c