计算机数据存储与进制

计算机数据存储与进制

文章目录

  • 计算机数据存储与进制
    • python软件安装
    • 数据存储
      • 内存
    • 进制
      • 二进制
      • 八进制
      • 十进制
      • 十六进制
    • 进制转换
      • 十进制转二进制
      • 二进制转十进制
      • 八进制转二进制
      • 二进制转八进制
      • 十六进制转二进制
      • 二进制转十六进制
      • 进制对应表
    • 存储数据的方式
    • 原码
    • 反码
    • 补码

python软件安装

链接:https://pan.baidu.com/s/1WrbMwSLbyeXLyDWzhaFnLA
提取码:wzvn

内涵:pycharm专业版、python3.6以及安装介绍

数据存储

在前面 我们首先思考一下,

1.为什么要使用计算机?

当然是为了存储数据、处理数据

2.数据存在哪里?

数据存储在内存当中

3.那么内存是如何存储数据的呢?

首先得先要弄清楚怎么存储数字

内存

内存是计算机存储数据的一个介质

抽象内存:一个开关,有两种状态,一种为开,一种为关,我们把开对应为1,把关对应为0。把8个开关丢入到一个房间里,那么就可以称这个房间为一个字节。一个开关代表的是一位数,每个房间都有门牌号,可以看作成地址。把无数个房间罗列起来组成一个摩天大厦,把摩天大厦看做成内存。

单位

​ 1bit

​ 8bit == 1字节

​ 1024字节 == 1K

​ 1024K == 1M

​ 1024M == 1G

​ 1024G == 1T

进制

二进制

​ 逢二进一

​ 0 1

​ 1 + 1 = 10

八进制

​ 逢八进一

​ 0 1 2 3 4 5 6 7

​ 1 + 7 = 10

十进制

​ 逢十进一

​ 0 1 2 3 4 5 6 7 8 9

​ 1 + 9 = 10

十六进制

​ 逢十六进一

​ 0 1 2 3 4 5 6 7 8 9 a b c d e f

​ 1 + f = 10

进制转换

十进制转二进制

​ 公式:倒除法,余数逆序

例如55 
55除以227   余数1
27除以213   余数1
13除以26	 余数1
6除以23	 余数0
3除以21	 余数1
那么逆序可得110111

二进制转十进制

​ 公式:当前的数字(0、1)乘以2的位数次方,然后相加

例如110111
1 x 2^5 + 1 x 2^4 + 0 x 2^3 + 1 x 2^2 + 1 x 2^2 + 1 x 2^1 + 1 x 2^0
= 32 + 16 + 0 + 4 + 2 + 1 
= 55

八进制转二进制

​ 公式: [一转三位] 八进制的一位相当于二进制的三位,计算时按十进制转换,不足三位高位补0

例如65
6 _ _ _  计算:6除以23,余数03除以21,余数1. 那么6可以化为 1 1 0
5 _ _ _  计算:5除以22,余数12除以21,余数0. 那么5可以化为 1 0 1
总结可得65110101

二进制转八进制

​ 公式: [三位一取] 从低位开始,每三位得到一个八进制数字,最后高位不足则补0

例如110101
0110 _ 计算:0x2^3+1x2^2+1x2^1+0x2^0 得出0+4+2+0=6
0101 _ 计算:0x2^3+1x2^2+0x2^1+1x2^0 得出0+4+0+1=5
综上述可得11010165

十六进制转二进制

公式: [一转四位] 十六进制的一位相当于二进制的四位,计算时按十进制转换,不足四位高位补0

例如75
7 _ _ _ _ 计算:7除以23,余数13除以21,余数1. 那么7可以化为 0 1 1 1
5 _ _ _ _ 计算:5除以22,余数12除以21,余数0. 那么5可以化为 0 1 0 1
总结可得7501110101

二进制转十六进制

公式: [四位一取] 从低位开始,每四位得到一个十六进制数字,最后高位不足则补0

例如01110101
0111 _ 计算:0x2^3+1x2^2+1x2^1+1x2^0 得出0+4+2+1=7
0101 _ 计算:0x2^3+1x2^2+0x2^1+1x2^0 得出0+4+0+1=5
综上述可得0111010175

其实我们可使用一个简便得方法

叫做8 4 2 1

例如 01100101
0 1 1 0 0 1 0 1
---------------
8 4 2 1 8 4 2 1

可得出4+2=6 4+1=5
得出65

例如 01110101
0 1 1 1 0 1 0 1
---------------
8 4 2 1 8 4 2 1

可得出4+2+1=7 4+1=5
得出75

进制对应表

十进制 二进制 八进制 十六进制
0 0 0 0
1 1 1 1
2 10 2 2
3 11 3 3
4 100 4 4
5 101 5 5
6 110 6 6
7 111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 a
11 1011 13 b
12 1100 14 c
13 1101 15 d
14 1110 16 e
15 1111 17 f

存储数据的方式

内存中存储的是数据的二进制形式
存储数据:
1、计算机先开辟空间,在存储数据,计算机开辟空间的最小单位是字节
2、在数据存储时,用最高位标识符号位,0表示正数,1表示复数

原码

原码:规定了字节数,写明了符号位,得到了数据的原码
思考:内存是以数据原码的形式存储的吗?

     0000 0000  0000 0000  0000 0000  0000 0001
+    1000 0000  0000 0000  0000 0000  0000 0001
---------------------------------------------------
     1000 0000  0000 0000  0000 0000  0000 0010   -2

结论:不以原码的形式存储数据

反码

反码:正数的反码就是其原码,负数的反码事其原码的符号位不变其他位取反
思考:内存是以数据反码的形式存储的吗?

    0000 0000  0000 0000  0000 0000  0000 0001
+   1111 1111  1111 1111  1111 1111  1111 1110
--------------------------------------------------- 
    1111 1111  1111 1111  1111 1111  1111 1111

结论:不以反码的形式存储数据

补码

补码:正数的补码是其原码(正数三码合一),负数的补码是反码加1

    0000 0000  0000 0000  0000 0000  0000 0001
+   1111 1111  1111 1111  1111 1111  1111 1111
---------------------------------------------------  
  1 0000 0000  0000 0000  0000 0000  0000 0000
# 加法最后得到的1溢出了,没有存储到内存中

结论:以补码的形式存储数据

你可能感兴趣的:(python)