文章目录
- 编译
- c 程序的结构
- 1、基本特征
- 1、函数
- 2、注释
- 3、预定义的标准函数
- 4、列子
- 4、语句
- 5、其他
- 2、c语言基本语法成分
- 1、标识符
- 1、自定义标识符命名的规则
- 2、关键字
- 2、运算符
- 1、运算对象个数分类
- 1、单目运算符
- 2、双目运算符
- 3、三目运算符(条件运算符)
- 3、计算机中存储单位
- 1、计算机中存储单位
- 2、不同存储单位件的换算
- 3、地址编号
- 4、数制及其转换
- 1、位权,也就是数位数
- 2、进制转换案例
- 1、非10进制转10进制数
- 2、十进制数转非10进制数
- 1、整数部分
- 2、小数部分
- 3、二进制和八进制转换
- 4、二进制和十六进制转换
- 5、八进制转换16进制
- 6、二进制和十进制的转换
- 5、二进制运算
- 1、加法
- 2、减法
- 3、逻辑运算
- 4、逻辑或
- 5、逻辑非
- 6、异或
编译
- 编辑 > .c > 编译 > .obj > 连接 > .exe 执行(二进制文件)
c 程序的结构
1、基本特征
1、函数
-
c语言程序有若干个函数组成,函数是c程序的基本单位
-
有且是有一个主函数main(),主函数是一个程序的入口和出口
2、注释
- 行注释和块注释
/* # 块注释*/// # 行注释
3、预定义的标准函数
-
scanf函数,printf函数
-
include 引入的函数
4、列子
#include <stdio.h> # 引用头文件
void main()
{int a,b; # 定义整型变量,在内存中定义的int sum;printf("请输入2个整数a,b:"); # 提示符scanf("%d,%d",&a,&b); # 输入的时候必须用逗号隔开,可以自定义sum=a+b;printf("和=%d\n",sum); # %d就是代表这个后面sum的对应的关系
}
4、语句
-
语句是组成程序的最小单位,函数的功能实现由若干个语句完成
-
语句必须以;结束
5、其他
- # 预处理命令
2、c语言基本语法成分
1、标识符
-
c语言规定以英文字母或者下划线开头
-
关键字(都是小写的)和标准标识符(系统预定义标准的库函数等,printf等)和自定义标识符(用户自定义的)
-
标识符必须要先定义后使用
1、自定义标识符命名的规则
-
数字,字母,下划线_ 构成,不能出现其他的
-
数字不能开头
-
严格区分大小写
-
不能使用关键字(对于用户自定义的标识符规则),但是可以使用printf等,有歧义
2、关键字
-
if while,sizeof等
-
全部都是小写的,大写字母的都不是
-
32个关键字
-
char,int,float(单精度浮点型),double(双精度浮点型),void(返回值为空),long(长整型)
2、运算符
1、运算对象个数分类
1、单目运算符
!a
2、双目运算符
a+b
3、三目运算符(条件运算符)
? ;
3、计算机中存储单位
1、计算机中存储单位
-
计算机内部,数据以二进制的形式存储和运算。在计算机中以0和1的二进制编码转换
-
数据的最小单位是二进制的一个数位,即为bit或b 00000011,就是有多少位
-
为了度量存储容量将8位二进制码称为一个字节(byte),简称B
-
字节是计算机中数据处理和存储容量的基本单位 1byte = 8bit
2、不同存储单位件的换算
1byte = 8bit1KB = 1024byte1MB = 1024KB1GB = 1024MB1TB = 1024GB
3、地址编号
-
操作系统把所有存储单元以字节为单位进行编号,这个编号就被称为地址
-
计算方式,存储容量 = 末地址-首地址+1
4、数制及其转换
1、位权,也就是数位数
123 = 1*10^2 + 2*10^1 + 3*10^0# 这个里面的10^n就是位权
- 尾符,区分进制数的标识
101B 就是二进制数101O/Q 就是八进制数101D 十进制101H 十六进制
2、进制转换案例
1、非10进制转10进制数
- 每位上的数码*位权(当前的转换的位权) 求和
1101B = 13D1*2^3 + 1*2^2 + 0*2^1 + 1*2^0 = 1327Q = 23D2*8^1 + 7*8^0 = 232CH = 44D2*16^1+12*16^0 = 44
2、十进制数转非10进制数
1、整数部分
-
整数部分,除N取余,商为0时,将余数部分倒序输出
-
N就是需要转换的进制权位
-
转谁除谁
13D = 1101B13 / 2 = 6……16 / 2 = 3……03 / 2 = 1……11 / 2 = 0……1# 倒序输出# 还有短除法21D = 25Q27D = 1BH
2、小数部分
-
小数部分
-
乘N 取整,积为0时,将整数部分正序输出
-
转几进制就乘谁
0.25D = 0.01B0.25 * 2 = 0.5 取整数出来 0 相当于是 - 00.5 * 2 = 1.0 取 1 出来0 * 0 = 0 结束 结果为 0.01B0.375D = 0.3Q0.375 * 8 = 3.0 取三出来0 * 0 = 0 # 然后整数输出
3、二进制和八进制转换
- 每三位二进制数等价于1位8进制数
10111000111# 不够三位就补全0# 就是相当于是转10进制
110 = 转换成10进制 1*2^2 + 1*2^1+0*2^0 = 6421表示即可
4、二进制和十六进制转换
-
每4位二进制等价于1位16进制数
-
8421
(1111)2 = (15)16
5、八进制转换16进制
-
先将8进制转换为二进制
-
然后根据二进制转换为八进制即可,4位为一组
27.12Q = _H25 十进制转换为16进制为 19# 当除数大于被除数时,余数为被除数
6、二进制和十进制的转换
5、二进制运算
1、加法
- 逢二进一
1011
0101 +
------
10000
-
所以的话,16进制的运算也是一样的
-
逢16进一
A+B = 21 十进制 --> 转换为16进制为 15
2、减法
- 借1为二
1110
1011 做减法
3、逻辑运算
-
逻辑与 ^ and表示
-
一假即假
-
1表示真
-
0 表示假
-
有0就是假
4、逻辑或
-
or
-
一真即真
5、逻辑非
-
not
-
真亦假时假亦真
6、异或
- 相同为0,不同为1