C语言基础

编译

  • 编辑 > .c > 编译 > .obj > 连接 > .exe 执行(二进制文件)

img

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、三目运算符(条件运算符)

? ;

img

3、计算机中存储单位

1、计算机中存储单位

  • 计算机内部,数据以二进制的形式存储和运算。在计算机中以0和1的二进制编码转换

  • 数据的最小单位是二进制的一个数位,即为bit或b 00000011,就是有多少位

  • 为了度量存储容量将8位二进制码称为一个字节(byte),简称B

  • 字节是计算机中数据处理和存储容量的基本单位 1byte = 8bit

2、不同存储单位件的换算

1byte = 8bit

1KB = 1024byte

1MB = 1024KB

1GB = 1024MB

1TB = 1024GB

3、地址编号

  • 操作系统把所有存储单元以字节为单位进行编号,这个编号就被称为地址

  • 计算方式,存储容量 = 末地址-首地址+1

4、数制及其转换

img

1、位权,也就是数位数

123 = 1*10^2 + 2*10^1 + 3*10^0

# 这个里面的10^n就是位权

  • 尾符,区分进制数的标识
101B 就是二进制数

101O/Q 就是八进制数

101D 十进制

101H 十六进制

2、进制转换案例

1、非10进制转10进制数

  • 每位上的数码*位权(当前的转换的位权) 求和
1101B = 13D

1*2^3 + 1*2^2 + 0*2^1 + 1*2^0 = 13


27Q = 23D

2*8^1 + 7*8^0 = 23

2CH = 44D

2*16^1+12*16^0 = 44

2、十进制数转非10进制数

1、整数部分
  • 整数部分,除N取余,商为0时,将余数部分倒序输出

  • N就是需要转换的进制权位

  • 转谁除谁

13D = 1101B

13 / 2 = 6……1

6 / 2 = 3……0

3 / 2 = 1……1

1 / 2 = 0……1

# 倒序输出

# 还有短除法

21D = 25Q

27D = 1BH

2、小数部分
  • 小数部分

  • 乘N 取整,积为0时,将整数部分正序输出

  • 转几进制就乘谁

0.25D = 0.01B

0.25 * 2 = 0.5 取整数出来 0 相当于是 - 0

0.5 * 2 = 1.01 出来

0 * 0 = 0 结束 结果为 0.01B

0.375D = 0.3Q

0.375 * 8 = 3.0 取三出来

0 * 0 = 0  # 然后整数输出


3、二进制和八进制转换

  • 每三位二进制数等价于1位8进制数
10111000111


# 不够三位就补全0

# 就是相当于是转10进制
110 = 转换成10进制 1*2^2 + 1*2^1+0*2^0 = 6

421表示即可

4、二进制和十六进制转换

  • 每4位二进制等价于1位16进制数

  • 8421

(1111)2  = (15)16

5、八进制转换16进制

  • 先将8进制转换为二进制

  • 然后根据二进制转换为八进制即可,4位为一组

27.12Q = _H

25 十进制转换为16进制为 19

# 当除数大于被除数时,余数为被除数

6、二进制和十进制的转换



img

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值