计算机数据表示

数值型数据

二进制、十进制、十六进制
基数:
十进制:0-9 (10个基数)
二进制:0、1
八进制:0-7
十六进制:0-9、a-f
计算机识别的是机器码,机器码用二进制表示
1)十进制转二进制:除2倒取余
8—》1000

2)二进制转十进制:基数2^权 8421法则
1011001=1
2^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

控制语句

ifelseswitchcasebreakdefaultwhiledoforcontinuereturngoto(跳转)

构造数据类型

struct结构体
union共用体
enum枚举

其他

typedef重定义
void空类型(空,修饰指针,不能修饰变量;作为函数的返回值;作为函数的参数)
const常量化
sizeof计算数据所占空间大小
volatile防止被编译器优化

标识符

用于给变量名、宏定义名、结构体名、重命名、函数名等起名字
标识符的定义规则:
1.数字、字母、下划线组成
2.第一个字符不能是数字
3.不能和关键字相同
4.见名知意

如何定义变量
变量:实在程序运行过程中会发生变化的量
定义格式:
[存储类型] 数据类型 变量名
左=右:等号是赋值,将等号右边的值赋给等号左边的变量,左边只能是变量

运算符

算数运算符

      • / % ++ —
        /:整除取整
        %:取模

        关系预算符

        < >= <= == !=
        ==:判断左右两边式子的结果是否相等
        真:非0
        假:0

        赋值运算符

        =、+=、-=、/=、%=、|=、&=、^=……
        a+=b;//a=a+b;
        a-=b;//a=a-b;
        a%=b;//a=a%b;
        =:将等号左边的值赋值给等号右边的变量
        等号右边一定是变量,左边可以是常量、表达式、变量

        逻辑运算符

        &&:逻辑与
        都为真,是真,只要有一个是假,逻辑关系为假
        截断法则:
        当第一个条件不满足,后边的条件不再进行判断,直接输出逻辑关系为真

||:逻辑或
都是假,是假,只要有一个是真,逻辑关系为真
截断法则:
当第一个条件满足,后边的条件不再进行判断,直接输出逻辑关系为真

!:逻辑非
假变真,真变假

若表达式为!a,当a取值为多少的时候,该表达式为真?a=0
a==0

a>b>c ==> a>b && b>c