一、概念
/*
1.十进制 转 二进制
规律 : 用需要转换的十进制 除以2 取余数 , 然后倒数
13 / 2 = 6 余 1
6 / 2 = 3 余 0
3 / 2 = 1 余 1
1 / 2 = 0 余 1
-------- = 1101
2. 二进制 转 十进制
规律 : 从低位数开始, 用低位 乘以 2的 多少次幂, 幂数从0开始,然后再相加
二进制 : 1101
1 * 2(0) = 1
0 * 2(1) = 0
1 * 2(0) = 4
1 * 2(3) = 8
1 + 0 + 4 + 8 = 13
口诀
1 1 1 1
8 4 2 1
3. 二进制 转 八进制
规律 : 三个二进制位 代表一个八进制位, 只需要将3个二进制位 转换为十进制, 之后再将所有的结果连接起来
1001 转换为 00 001 001
0 1 1
------------------------
011 == 0 * 8 + 1 * 8 + 3 = 11(十进制)
4. 二进制 转 十六进制
规律 : 四个二进制位代表一个十六进制位, 只需要将4个二进制位转换成10进制, 之后再将所有的结果连接起来
0001 1011
--------
1 b = 0x1b
*/
二、代码
#include <stdio.h>
int main()
{
#pragma 1. 十进制 转 二进制
/*
9 / 2 = 4 余 1
4 / 2 = 2 余 0
2 / 2 = 1 余 0
1 / 2 = 1 余 1
9的 二进制 就是 0b1001
15 / 2 = 7 余 1
7 / 2 = 3 余 1
3 / 2 = 1 余 1
1 / 2 = 0 余 1
13 / 2 = 6 余 1
6 / 2 = 3 余 0
3 / 2 = 1 余 1
1 / 2 = 0 余 1
*/
printf("%i\n",0b1001);
printf("%i\n",0b1111);
printf("%i\n",0b1101);
#pragma 2. 二进制 转 十进制
/*
二进制 : 1001
1 * 2(0) = 1
0 * 2(0) = 0
0 * 2(0) = 0
1 * 2(3) = 8
1 + 0 + 0 + 8 = 9
二进制 : 1101
1 * 2(0) = 1
0 * 2(1) = 0
1 * 2(0) = 4
1 * 2(3) = 8
1 + 0 + 4 + 8 = 13
口诀
1 1 1 1
8 4 2 1
1 * 2(0) = 1
1 * 2(1) = 2
1 * 2(0) = 4
1 * 2(3) = 8
*/
// N为二进制的取值范围
// 1位 : 0~1 0~2(n)-1 = 0~1
// 2位 : 0~3 0~2(2)-1 = 0~3
// 3位 : 0~7 0~2(3)-1 = 0~7
/*
000
001
010
011
100
101
110
111
*/
#pragma 3. 二进制 转 八进制
/*
1001 转换为 00 001 001
0 1 1
------------------------
011 == 0 * 8 + 1 * 8 + 3 = 11
00 011 011
----------
033 == 0 * 8 + 3 * 8 + 3 = 27
*/
printf("---\n");
printf("%i\n",033);
printf("二进制 转 八进制 %i\n",0b11011);
#pragma 4. 二进制 转 十六进制
/*
0001 1011
--------
1 b = 0x1b
*/
printf("---\n");
printf("二进制 转 十六进制 %i\n",0x1b);
return 0;
}
网友评论