1. 二进制、八进制、十进制、十六进制(参考:点击打开链接)
- 对比
基数 进位规则 借位规则 二进制 2 逢二进一 借一当二 八进制 8 逢八进一 借一当八 十进制 10 逢十进一 借一当十 十六进制 16 逢十六进一 借一当十六
- 书本中:
二进制(B):Binary
八进制(O / OCT):Octal
十进制(D):Decimal
十六进制(H):Hexadecimal
- C语言(整数有三种表示方法:八进制、十进制、十六进制)
八进制:以0开头,由0~7组成。(%o)
十进制:除表示正负的符号外,以1~9开头,由0~9组成。(%d表示int型 / %u表示unsigned int型)
十六进制:以0X或0x开头,由0~9 A~F(或a~f)组成。(%X大写 / %x小写)
- 进制间的转换
(1) 二进制 VS 十进制:
二进制转换为十进制:把二进制数按权展开相加
十进制转换为二进制:整数部分(除2取余倒排列)
小数部分(乘2取整正排列)
(2) 二进制 VS 八进制:
二进制转换为八进制:(取三合一)以小数点为界,小数点位置不变分别向左、向右取三个数构成一个八进 制数(三位按权展开相加),若最后不够三个二进制数,则可在最左、最右补0。
八进制转换为二进制:(取一分三)小数点位置不变
(3) 二进制 VS 十六进制:
二进制转换为十六进制:(取四合一)
十六进制转换为二进制:(取一分四)
规律: N进制向十进制转换都是按位权展开相加,以小数点为界,小数点向左为0 1 2...,小数点向右为-1 -2 -3...。N进制位权为N,例如:八进制23.45转换为十进制(2*8^1 + 3*8^0 + 4*8^-1 + 5*8^-2)
2. C语言中多维数组的使用(参考:点击打开链接)
- 数组(Array):一维数组、二维数组(矩阵)、三维数组(参考:点击打开链接)
一维数组:
float a[5] // 数组a有5个元素,注意[]里面为常量表达式,可以是1+4,也可以是5,但不能是3+i a[3] // 引用一维数组元素用单下标
二维数组:
float a[3][4] // 二维数组a有3*4个元素 a[1][2] // 二维数组的引用用双下标
三维数组:
float a[2][3][4] // 三维数组a有2*3*4个元素 a[1][2][3] // 三维数组元素的引用用三下标
3. C++结构体struct的使用
- struct的使用
例:在学生成绩登记表中需要记录学生姓名、学号、成绩、名次等信息,这些信息属于不同的数据类型,因为同一个数组内的数据的数据类型和长度必须保持一致,因此为了解决这一问题,C语言给出了另一种数据类型—“结构”。
它是C/C++关键字。
- typedef struct和struct的区别(参考:点击打开链接)
struct group { int a; }; // 后面申请group变量时,需要struct group a; typedef struct group { int a; }Group; // 后面申请group变量时,只需要Group a;Group相当于这个结构体的别名。
参考:点击打开链接
4. C++联合体union的使用(参考:点击打开链接)
- union的定义
联合是种特殊的类,是一种构造类型的数据结构,一个联合中可以定义多种不同的数据类型。这些数据共享一段内存,达到节省空间的目的(还有一个节省空间的类型:位域)。
- union和struct的区别
联合和结构的本质区别在于:结构中各成员都各自的内存空间,一个结构变量的总长度是各成员长度之和;而联合中的数据共享同一个内存空间,一个联合变量的长度等于所有成员中的总长度。
注:联合中的共享不是说把多个成员同时装入一个联合变量中,而是指该联合变量可被赋予任何一个成员的值,但每次只能赋一次值。
- 如何定义?
union test { test() {} int office; char teacher[5]; }; // 定义了一个名为test的联合类型,它含有两个成员,一个是整型,一个是字符型。 联合定义之后可进行联合变量说明,被说明为test类型的变量可存放整型量office或字符数组teacher。
- 如何说明?
联合变量的说明有三种形式:
(1) 先定义再说明
union test { int office; char teacher[5]; }; union test a,b; // 说明a,b是test联合类型
(2) 定义同时说明
union test { int office; char teacher[5]; }a,b;
(3) 直接说明
union { int office; char teacher[5]; }a,b;
经说明后,a,b都属于test联合类型。
- 如何使用?
联合变量的成员表示为:联合变量名.成员名。
例如:a被说明为test类型的变量后可使用a.class。不允许只对联合变量名做赋值或其他操作。
参考:点击打开链接