1.2进制以及进制之间的转换

思考1 为什么要使用计算机?

计算机可以存储数据,并计算数据

思考2 数据存在哪里?

存储器

  • 在计算机中,指令主要存放在存储器。计算机中全部信息,包括输入的原始数据、计算机程序、中间运行结果和最终运行结果都保存在存储器中。它根据控制器指定的位置存入和取出信息。有了存储器,计算机才有记忆功能,才会保证正常工作。计算机中的存储器按用途存储器可分为内部存储器(内存)和外部存储器(辅助存储器)
  • 内存储器又称为内存,通常也泛称为主存储器,是计算机中的主要部件,内存储器包括寄存器、高速缓冲存储器。
  • 外部存储器有软盘、硬盘、光盘、U盘、磁带等,主要用来长期或永久存放程序和数据。
  • 内存储器和外存储器的区别是:内存储器速度快、价格贵、容量小,用来存放当前正在执行的数据和程序,但仅用于暂时存放程序和数据,关闭电源或断电,数据会丢失。外存储器单位价格低、容量大、速度慢,断电后数据不会丢失,能长期保存信息。
思考3 计算机怎么进行数据存储?

https://www.jianshu.com/p/257936daae47
以二进制形式进行数据存储

思考4 什么是进制?

进位计数制,人为定义的带进制的计数方法

1. 数据的存储单位
  • 位(bit):是计算机中最小的数据单位,每一位的状态只能是0或1;
  • 字节:8个二进制位构成一个字节,是存储的基本计量单位;
  • 字:字由若干个字节构成,字的位数叫做字长,比如16位机,它的一个字由两个字节构成,字长为16位。字是计算机进行数据处理和运算的单位。
8bit = 1字节
1024字节 = 1kb
1024kb = 1M
1024M = 1G
1024G = 1T
1024T = 1P
2.进制的分类
  • 生活中常见的十进制
  • 二进制/十进制/八进制/十六进制
  • 二进制由来:任何数据在计算机中都是以二进制的形式存在
  • 规律:进制越大,表现的形式越短
2.1 二进制
  • 特点:由0,1组成,以0b开头,逢二进一
0 + 0 = 0
0 + 1 = 1
1 + 1 = 10
11 + 1 = 100
2.2 八进制
  • 特点:由0~7数字组成,逢八进一,以0o开头
1 + 7 = 10
1 + 2 = 3
2.3 十进制
  • 特点:由0~9数字组成,逢十进一,整数默认的数据进制
1 + 7 = 8
1 + 2 = 3
2.4 十六进制
  • 特点:由0~9 a~f组成,逢十六进一,以0x开头
  • 作用:内存地址用十六进制数表示
3.十进制转化为其他进制

3.1 十进制转换为二进制
10----->0b1010
10/2   0
5/2     1
2/2     0
1/2     1
  • 一个整数在内存中的大小占4个字节; 现在的一个int类型可以表达的整数范围有-(2的31次方)到2的31次方-1个这么大范围
3.2 十进制转换为八进制
10(10)----->0o12(8)
10/8  2
1/8    1
3.3 十进制转换为十六进制(直接除以16,余数在1015之间,用af表示)
28(10)------->0x1c(16)
28/16   c
1/16     1
4.其他进制转换为十进制或者其他进制
4.1 二进制转换为十进制
  • 当前的数字,乘以2的位数减一的次方,最后相加
0000 1010 ----->10
0x2^0 + 1x2^1 + 0x2^2 + 1x2^3 == 10
4.2八进制转换为二进制
  • 一转3位,八进制的一位相当于二进制中的三位,转换的时候按照十进制进行转换(个位数就是个位数,十位数就是十位数)
65(8)------>0b110101(2)
6------>二进制------->110
5------>二进制------->101
4.3二进制转换为八进制
  • 三位一取,从低位开始取,高位不够补零
110101(2)------->65(8)
110 101
 6    5
4.4十六进制转换为二进制
  • 一转4位,十六进制的一位就相当于二进制的4位,转换时以十进制转换(个位数就是个位数,十位数就是十位数)
0xa4(16)-------->0b10100100(2)
a               4
1010      0100
4.5二进制转换为十六进制
  • 四位转一位,从低位开始取,高位不够补零
1110 0101 ------> e5(16)
1110  0101
e         5

【补充:十进制转换八进制/十六进制(可以先将十进制转换为二进制,再将二进制转换为对应的八进制/十六进制)】

5.使用python中的函数实现进制之间的快速转换(扩展)
5.1 表示各个进制的符号
  • b:二进制
  • o:八进制
  • d:十进制
  • x:十六进制
5.2使用进制实现进制之间的快速转换
#十进制转二进制bin(args)   args---->具体需要转换的值
print(bin(20)) #0b10100
#二进制转十进制
print(eval("0b10100")) #20
#十进制转八进制oct(number)
print(oct(20)) #0o24
#八进制转十进制int()
print(int("0o24", 8))#20
#十进制转十六进制hex(number)
print(hex(20)) #0x14
#十六进制转十进制 int()
print(int(int("0x14", 16)))#20

你可能感兴趣的:(1.2进制以及进制之间的转换)