文章目录
前言
位(bit)是计算机内存的基本构建块,是计算机最小的存储单元
一、位、字节和字
位 是计算机内存的基本构建块
计算机最小的存储单元是 位(bit),可以存储 0 或 1
字节(byte)是常用的计算机存储单元,1 Byte = 8 bit
字(Word)代表计算机处理指令或数据的二进制数位数,是计算机进行数据存储和数据处理的运算的单位。
- 对于 32 位计算机,1字=32位=4字节
- 对于 64 位计算机,1字=64位=8字节
转换关系:
1T——1024GB
1GB——1024MB
1MB——1024KB
1KB——1024B
1byte——8bit
二、八进制和十六进制
1.表示方法
- 0x 或 0X 前缀表示十六进制值,如十进制数 16 表示成十六进制是 0x10 或 0X10
- 0 前缀表示八进制数,如十进制数 16 表示成八进制是 020
2.打印
转换说明 | 进制数 |
---|---|
%d | 十进制 |
%o | 八进制 |
%x | 十六进制 |
若还要显示各进制数的前缀 0、0x 或 0X,就分别要用 %#o、%#x、%#X
例子
源代码
#include<stdio.h>
int main()
{
int num = 16;
printf("以不同进制打印十进制数 16:\n");
printf("十进制:%d\n", num);
printf("八进制:%o\n", num);
printf("十六进制:%x\n\n", num);
printf("以不同进制打印十进制数 16,并显示各进制数的前缀:\n");
printf("十进制:%d\n", num);
printf("八进制:%#o\n", num);
printf("十六进制:%#x\n", num);
printf("十六进制:%#X\n", num);
return 0;
}
运行结果
三、进制的转换
1.二进制转十进制
- 展开,然后每一位乘积后相加
如:(10010)₂=(1×2⁴+0×2³+0×2²+1×2¹+0×2⁰)₁₀
- 8421法
如:(10010)₂=16+0+0+2+0
2.十进制转二进制
- 除以2逆向取余
- 逆8421法
如:(37)₁₀ --> 32+4+1 --> 00100101
3.八进制转二进制
每一个八进制位转换成 3 个二进制位,左边不足 3 个的补上 0
如:567 --> 101 110 111
234 --> 010 011 100
4.二进制转八进制
从右向左,每 3 个二进制位为一组,每一组转换成 1 个八进制位
如:011 101 110 101 011 --> 35653
5.十六进制转二进制
每一个十六进制位转换成 4 个二进制位,左边不足 4 个的补上 0
如:109CBE --> 0001 0000 1001 1100 1011 1110
6.二进制转十六进制
从右向左,每 4 个二进制位为一组,每一组转换成 1 个八进制位
如:1011 0010 0101 1000 1100 --> B258C
1100 1011 1110