1.进制
进位机制(逢几进1)
作用:用有限的数字字符去表现数值
一
.
进制的规则
1.N 进制使用规则 0~N-1 之间的数字表示所有的数值
( 1 )二进制 0 1
( 2 )八进制 0~7
( 3 )十进制 0~9
( 4 )十六进制 0~9 A~F ( 10~15 )
2.N 进制的数值,每一位在计算时都是逢 N 进一
(
1
)在十进制下,在计算
9+1
,数值是
10
,表示10
(
2
)在二进制下,在计算1
+1
,数值是2
,表示
10
二.进制转换
1.N进制的基数为N
2.位:对数值的每一位的描述。从右向左,最低位使用0表示,向最高位依次递增。
3.
权:
N
进制的权是
N
。例如:十进制的权是
10
4.
位权:数值的每一个位置对应的单位值。
n^(i-1)
(1) 十进制 转 N 进制
口诀 : 连除(除 N ,商为 0 结束) 倒取余
(2)N 进制 转 十进制
口诀:按位 求和
5. 区分进制
( 1 )十进制 没有修饰
( 2 )八进制 以 0 开头 063
( 3 )十六进制 以 0X 或 0x 开头 0x63
6. 进制常识
(1) 十进制 转 N 进制
口诀 : 连除(除 N ,商为 0 结束) 倒取余
(2)N 进制 转 十进制
口诀:按位 求和
5. 区分进制
( 1 )十进制 没有修饰
( 2 )八进制 以 0 开头 063
( 3 )十六进制 以 0X 或 0x 开头 0x63
6. 进制常识
(1)十进制:给开发人员用的 二进制:计算机能够识别的语言
(2)十六进制的存在为了方便表示二进制(一个16进制位 = 4个二进制位)
C语言常识
#include
<stdio.h>
#include
作用:导入文件内容
stido
:
standard input output
标准输入输出
#include <stdlib>—library---包含随机函数
< >包含系统自带头文件
#include “ "包含一个用户定义的文件,可以是头文件,也可以是普通文件
搜索顺序:当前目录→编译器include目录→系统目录→报错
//#include “a.txt"
//把当前目录a.txt的内容替换到当前写include位置
//当前目录:和main.c同一个目录
//子集目录:”text/a.txt“,text和main.c一个目录
//如果修改了编译器的include的自定义文件,运行无变化,方法:
1、 清空缓存 product→clear
2、手动清理缓存 删除DerivedData文件下得内容 ,command+A全选删除
C语言模块化编程(多文件开发)
我们把功能相似的函数封装到不同的文件中(一个.c对应一个.h文件,且文件名相同)
实现:
.c c语言源程序
.h (header)头文件:
1、方法的声明 但是不能实现方法
2、声明变量
3、声明结构体
好处:1、用的时候,只需要包含.h文件,对外隐藏源文件的实现
2、团队的分工和协作
3、可以吧功能细化分若干模块
注释:单行注释(
command+/
)、多行注释
/*
程序运行时,注释不被执行
*/
2.基本数据类型
#pragma mark 标记:类似目录(可快速查找位置)
一、基本数据类型
整型、浮点型、字符型
二、整型
1 、有符号 short 2
int 4
long 4 或 8 (根据当前环境)
整型、浮点型、字符型
二、整型
1 、有符号 short 2
int 4
long 4 或 8 (根据当前环境)
2、无符号
unsigned short
unsigned int
unsigned long
三、浮点型
float 4 、 double 8
四、字符型
char 1
五、数据的存储单位
1 、存储单位。
字节 byte ,最常用的存储单位。
位 bits ,最小的存储单位
2 、 1 字节 = 8 位(二进制位) = 2 位(十六进制位)
3、计算类型的字节数,sizeof()
printf("%lu\n", sizeof(char));
%lu :无符号长整型unsigned long
3.常量变量运算符
常量:程序运行期间不可被修改的量
整型常量 12
浮点型常量 1.3
字符型常量 'a' 'A'
字符串常量 "zachary"
变量(使用之前必须被定义):代表一个存储区域(容器),内容即为变量的值,可被改变
组成:类型修饰符 变量名 = 初始值
变量命名规则:只能以字母,数字,下划线组成,并且数字不能开头(
不能与系统保留字相同,不能使用重复的变量名,见名知意,驼峰命名法)
//
变量名使用驼峰命名法
// 老师的年龄
int teacherAge = 18 ;
// 学生的年龄
int studentAge = 8 ;
// 练习:交换两个变量的值
int a = 10 ;
int b = 20 ;
// 老师的年龄
int teacherAge = 18 ;
// 学生的年龄
int studentAge = 8 ;
// 练习:交换两个变量的值
int a = 10 ;
int b = 20 ;
//
定义临时存储数据的变量(中间变量)
int
temp = a;
a = b;
a = b;
b = temp;
运算符
赋值运算符:变量
=
常量
/
变量
声明变量:
int num;
//
除法运算符
/
// 被除数 / 除数 除数不能为 0
// 如果除号的两边都是整数,结果也为整数,省略小数部分(不存在四舍五入)
int c1 = 5 / 2 ; // 结果是 2
// 如果除号两边有至少一个浮点数,结果就是浮点数
float c2 = 5 / 2.0 ; // 结果是 2.5
// 取余(模)运算符 %
// 运算符两边必须是整数
// 余数必小于除数
int d1 = 5 % 3 ; // 结果是 2
// 自增运算符 ++
// 变量的值加 1
int e1 = 10 ;
e1++; //e1 = e1 + 1;
//a++ 与 ++a 有不同的含义
//a++ 变量中的值先参与运算,后自增
//++a 变量的中值先自增,后参与运算
// 被除数 / 除数 除数不能为 0
// 如果除号的两边都是整数,结果也为整数,省略小数部分(不存在四舍五入)
int c1 = 5 / 2 ; // 结果是 2
// 如果除号两边有至少一个浮点数,结果就是浮点数
float c2 = 5 / 2.0 ; // 结果是 2.5
// 取余(模)运算符 %
// 运算符两边必须是整数
// 余数必小于除数
int d1 = 5 % 3 ; // 结果是 2
// 自增运算符 ++
// 变量的值加 1
int e1 = 10 ;
e1++; //e1 = e1 + 1;
//a++ 与 ++a 有不同的含义
//a++ 变量中的值先参与运算,后自增
//++a 变量的中值先自增,后参与运算
/*
e4 = 20 + 20; 40
e3 = e3 + 1;
*/
int
e3 =
20
;
int e4 = 20+e3++;
/
复合运算符
// 加等 +=
int f1 = 10 ;
int f2 = 20 ;
f2 += f1; //f2 = f2+f1;
f2 -= f1; //f2 = f2 - f1;
f1 *= f2; //f1 = f1 * f2;
// 加等 +=
int f1 = 10 ;
int f2 = 20 ;
f2 += f1; //f2 = f2+f1;
f2 -= f1; //f2 = f2 - f1;
f1 *= f2; //f1 = f1 * f2;
f2 /= 2; //f2 = f2 / 2;
//
表达式
:
常量、变量和运算符的组合
// 表达式都是有结果的
/*
12
a+1
b
*/
int g1 = 10 ;
int g2 = g1 + 10 ;
// 表达式都是有结果的
/*
12
a+1
b
*/
int g1 = 10 ;
int g2 = g1 + 10 ;
语句
以
;
结尾
/*
a + b 表达式
a + b; 语句
a + b 表达式
a + b; 语句
*/
4.基本输入、输出函数
格式化输出函数printf
char(%c)
,
int(%d)
,
short(%sd)
,
long(%ld)
,
float(%f)
,
double(%f)
功能1:输出简单的字符串
// printf("hello world!\n");
// printf("My name is Chen Zichao (陈自超) !\n");
// printf("BJS150833\n");
// printf("My name is Chen Zichao (陈自超) !\n");
// printf("BJS150833\n");
功能2:输出常量值
//
将整型数值
10
,显示在控制台
// printf(" 输出的整型数为: %d\n", 10);
// 输出一本书的价格 55.5(%f 默认保留小数点后 6 位 )
// printf(" 这本书的价格: %f\n", 55.5);
// printf(" 输出的整型数为: %d\n", 10);
// 输出一本书的价格 55.5(%f 默认保留小数点后 6 位 )
// printf(" 这本书的价格: %f\n", 55.5);
功能3:输出变量或表达式的值
int
number =
1
;
char gender = 'f' ;
float score = 98.5 ;
//
// printf(" 学生的学号: %d\n", number);
// printf(" 学生的性别: %c ,学生的分数: %f", gender, score);
// printf("%d", number+1);
char gender = 'f' ;
float score = 98.5 ;
//
// printf(" 学生的学号: %d\n", number);
// printf(" 学生的性别: %c ,学生的分数: %f", gender, score);
// printf("%d", number+1);
格式化控制:
// printf("%04d", 12); //
保留
4
位,前面不足补
0
// printf("%.1f", 9.58); //.
后面保留一位,满足四舍五入
// printf("%4.1f", 12.4567); // .
前面的指定位数,后面保留几位
printf("%-4d", 112); //左对齐
换行符:\n
%%:输出%
输入函数scanf
char(%c)
,
int(%d)
,
short(%sd)
,
long(%ld)
,
float(%f)
,
double(%lf)
// 从控制台输入数据,存储在某个变量中
// 输入年龄
// int age = 0;
// printf(" 请输入年龄: ");
//scanf 双引号 “” 内 , 写什么内容,在控制台必须原样输入
// scanf("%d", &age); //& 取地址符 回车结束输入
// printf("age = %d\n", age);
//
//breakpoint 断点
// 从控制台输入学生的学号和年龄
// int number = 0;
// int age = 0;
//
// printf(" 请输入学生的学号和年龄: ");
// scanf("%d %d", &number, &age);
// printf("number = %d,age= %d\n", number, age);
// 输入多个数的时候,使用空格隔开
// 在控制台输入时,整数之间可以使用多个空格间隔
// 空白字符(空格,Tab,回车符)
// 输入字符%c
char gender = 0 ;
printf ( " 请输入性别: " );
scanf ( "%c" , &gender);
printf ( "gender = %c\n" , gender);
//scanf中不能出现\n,""中的\n会抵消回车符的操作