一、进制
1.什么是进制
• 是一种计数的方式,数值的表示形式
2.二进制
• 特点:只有0和1,逢2进1
• 书写格式:0b或者0b开头
o 二进制 以0b 或者 0B开头
o 八进制 以0开头
o 十六进制 以0x或者0X开头
• 使用场合:二进制指令\二进制文件,变量在内存中就是二进制存储
• n为二进制位所能表示的数据范围(不考虑负数):0~2的n次方-1
3.八进制
• 特点:0~7,逢八进一
• 书写格式:0开头
4.十六进制
• 特点:0~F,逢十六进一
• 书写格式:0x或者0X开头
5.总结
1>mac中计算器的使用
2>printf以不同形式进行输出
进制的应用
#include <stdio.h>
int main(int argc, const char * argv[])
{
int a = 13;
printf("%d\n",a);
printf("%o\n",a);
printf("%x\n",a);
int b = 0b00000000000000000000000000001101;
printf("%d\n",b);
int b1 = 015;
printf("%d\n",b1);
int b3 = 0x520A;
printf("%d\n",b3);
return 0;
}
二、常见的进制转换
转换:有得时候转换为人能识别的数制,要操作计算机写计算机能够识别的语言(二进制)
10 -> 2 : 除2取余法,把10进制数除以2,然后取得余数的序列,再倒序
2 -> 10 : 所有位的位权相加 101 = 1*2^0+0*2^1+1*2^2
2 –> 16 : 4合1法, 整数部分从右向左 4位结合成一位,小数部分从左向右4位结合1位, 不足部分补0
16 –>2 : 1拆4法, 16进制的1位拆成二进制的4位
2–>8:3合1
8–>2:1拆3
10–>8 :除8取余
8 –> 10 : 8–> 2 –> 10
16 –> 10: 16 –>2 –>10
进制转换应用
#include <stdio.h>
void changeTo2(int n){
int len = sizeof(n) * 8;
int temp;
for (int i=0; i<len; i++) {
temp = n;
temp = temp>>31-i;
int t = temp & 1;