day06

进制
// 1.默认就是10进制
int num = 12;
// 2.在前面加上一个0就代表八进制
int num1 = 014;
// %d是以十进制的方式输出一个整数
printf("%d\n", num1);
// %o是以八进制的方式输出一个整数
printf("%o\n", num);
// 在数值前面加上0b就代表二进制
int num2 = 0b1100;
printf("%d\n", num2);
// 在数值前面加上0x就代表十六进制
int num3 = 0xc;
printf("%d\n", num3);
// %x是以十六进制的方式输出一个整数
printf("%x\n", num);
// 口诀:不看你怎么存,只看你怎去取

进制转换

十进制 -> 二进制
转换原理:除2取余 倒序读取
二进制 --> 十进制
转换原理:乘以2的幂数(幂数从0开始), 然后相加
二进制 --> 八进制 进制越大表示的位数就越短
规律:三个二进制位代表一个八进制位
因为3位的最大取值是7 而八进制是逢八进一
二进制 --> 十六进制
规律:四个二进制位代表一个十六进制位
因为4位的最大取值是15, 而十六进制是逢十六进一

原码反码补码
二进制的最高位我们称之为符号位
如果符号位是0代表是一个正数,
如果符号位是1代表是一个负数
正数的特点:(三码合一) 正数的原码就是TA的反码就是TA的补码
负数:原码符号位为1 其余与正数相同
反码, 符号位不变其它位取反
补码 反码+1

结论:无论正数负数在内存中存储的都是补码

位运算
位运算都是针对二进制
& 按位与
特点:只有对应的两位都是1才返回1 否则返回0
口诀: 一假则假
规律:任何数按位与上1结果还是那个数
| 按位或
特点:只要对应的两位其中一位是1就返回1
口诀:一真则真
^ 按位异或
特点:对应的两位不相同返回1 相同返回0
~ 按位取反
特点: 0变1 1变0

左移右移
<< 左移

 a << n 把整数a的二进制位往左边移n位
 移出的位砍掉,低位补0, 发现左移会把原有的数值变大

注意点:左移有可能改变树脂的正负形

右移

 a >> n 把整数a的二进制位往右边移n位
 移出的位砍掉, 缺少的以为最高位是0就补0是1就补1(是在当前操作系统下)

变量
// 变量为什么要有类型? 每种类型占用的内存空间不一样 int 4, char 1 double 8
// 只要定义变量, 系统就会开辟一块存储空间给我们的变量存储数据, 内存寻址是从大到小
// 越先定义的变量, 内存地址越大
// 变量的地址就是所占的存储空间最小的字节地址
// 注意: 由于内存寻址是从大到小, 所以存储数据也是从大到小的存储(先存储二进制的高位, 再存储低位)
// %p是输出地址
// &变量名称, 是取出变量的地址
例 printf("num = %p\n", &num);

char
char charValue;
charValue = 'a'; // 计算机智能识别0和1
// a == 97 == 01100001

类型说明符
类型说明符:
1.说明长度的(它可以用于修改类型所占用的存储空间的大小)
short; short == short int == 2个字节 == %hi/ %hd
long; long == long int == 8个字节 == %li / %ld
long long; == long long int == 8个字节 == %lli / %lld

用于说明数据类型, 一般情况下和int配合使用

2.说明符号位(它可以用于修改符号位是否用于正负数)
unsigned; 无符号 , 取值正数和零 == %u
signed; 有符号, 默认就是有符号 , 取值 正数和零以及负数

3.不同类型的说明符可以混合使用
unsigned short
signed long
// 注意: 相同类型不能在一起使用
unsigned signed

数组
数组的定义格式:
数据类型 变量名称;
数据类型 数组名称[数据的个数];
元素类型 数组名称[元素个数];
元素类型: 就是数组中需要存储的数据类型, 一旦指定, 数组中就只能存储该类型的数据
元素个数: 就是数组中能够存储的数据(元素)的个数
数组初始化
//依次将{}中的每一个值赋值给数组中的每一个元素
// 并且从0开始赋值
// 也称之为数组的初始化(完全初始化)
部分初始化
// 默认从0开始初始化, 依次赋值
// 注意: 如果"在部分初始化中"对应的内存没有被初始化, 那么默认是0
数组的遍历
// 取出数组中所有的值, 称之为遍历
// 注意: 在遍历数组的时候, 尽量不要把遍历的次数写死
// 遍历多少次应该由数组来决定, 也就是说遍历多少次应该通过数组计算得出
如: int length = sizeof(scores) / sizeof(scores[0]);

你可能感兴趣的:(day06)