Python笔记_01_计算机基本认知_进制转换_原码、反码、补码_Python的认知

计算机硬件基本认知

CPU: 中央处理器。相当于人的大脑、运算中心、控制中心
内存:临时存储数据。优点:读取速度快;缺点:容量小造价高,断电即消失。
硬盘:长期存储数据。优点:容量大,造价相对低,断电不消失;缺点:读取速度慢。
操作系统:统一管理计算机软硬件资源

计算机文件大小单位

b = bit 位(比特)
B = Byte 字节

1Byte = 8 bit #一个字节等于8位 可以简写成 1B = 8b
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
1PB = 1024TB
1EB = 1024PB

进制转换

二进制:由2个数字组成,有0 和 1 例: 0b101
八进制:由8个数字组成,有0,1,2,3,4,5,6,7 例: 0o127
十进制:有10个数字组成,有0,1,2,3,4,5,6,7,8,9 例: 250
十六进制:有16个数字组成,有0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f(字母大小写都可以,分别代表10,11,12,13,14,15) 例:0xff 0Xff 0XFF

二进制 转化成 十进制

例: 0b10100101
运算:1 * 20 + 0 * 21+ 1 * 22 + 0 * 23 + 0 * 24 + 1 * 25 + 0 * 26+ 1 * 27= 1 + 0 + 4 + 0 + 0 + 32 + 0 + 128 = 165

八进制 转化成 十进制

例: 0o127
运算: 7 * 80 + 2 * 81 + 1 * 82 = 7+16+64 = 87

十六进制 转化成 十进制

例: 0xff
运算:15 * 160 + 15 * 161= 255

十进制 转化成 二进制

例:426 => 0b110101010
运算过程: 用426除以2,得出的结果再去不停地除以2,
直到除完最后的结果小于2停止,
在把每个阶段求得的余数从下到上依次拼接完毕即可

十进制 转化成 八进制

例:426 => 0o652
运算过程: 用426除以8,得出的结果再去不停地除以8,
直到除完最后的结果小于8停止,
在把每个阶段求得的余数从下到上依次拼接完毕即可

十进制 转化成 十六进制

运算过程: 用426除以16,得出的结果再去不停地除以16,
直到除完最后的结果小于16停止,
在把每个阶段求得的余数从下到上依次拼接完毕即可

二进制与八进制转换

二进制与八进制对应关系:

八进制二进制八进制二进制
00004100
10015101
20106110
30117111

例:1010100101
八进制:从右向左 3位一隔开 不够三位用0补位 变成:
    001 010 100 101
0o   1  2  4  5

二进制与十六进制转换

二进制与十六进制对应关系:

十六进制二进制十六进制二进制
0000081000
1000191001
20010A1010
30011B1011
40100C1100
50101D1101
60110E1110
70111F1111

例:1010100101
十六进制:从右向左 4位一隔开 不够四位用0补位 变成:
  0010 1010 0101
0x  2   A     5

八进制 与 十六进制的转换

先转换成二进制 再去对应转换

比如:0x2a5 转换成 1010100101 再转8进制 0o1245

原码,反码,补码

概念

计算机的所有数据在底层都是以二进制的[补码]形式存储
实际人们看到的数字是[原码]转化来的
而[原码]是通过[补码]得到的

补码 -> 原码 -> 最后人们看到的数
进制转换的时候需要先把内存存储的补码拿出来变成原码在进行转换输出

计算机底层存储的补码:
正数高位补0 负数高位补1(前面空白位全是1)
数字 1 00000000 1 正数高位都补0
数字-1 11111111 1 负数高位都补1

原码: 用来转换对应进制
反码: 二进制码0变1,1变0叫做反码,反码用于原码补码之间的转换.(符号位不变)
补码: 用来做数据的存储运算. 补码提出的根源是让计算机底层的实现减法操作(可以表达出一个数的正负)
言外之意:计算机默认只会做加法,例:5+(-3) => 5 - 3
乘法除法:是通过左移和右移 << >> 来实现

运算

(原码 反码 补码之间的转换 , 符号位不要动)
正数: 原码 = 反码 = 补码
负数: 原码 = 补码取反加1 给补码求原码
负数: 补码 = 原码取反加1 给原码求补码

例:
5 + (-3) => 5 - 3
5 => 101
-3 => ?
(1) 先算-3的原码
1 0000…000 011
(2) 取反
1 1111…111 100
(3) 加1 最终值是补码 (用来做算术运算或存储用的)
1 1111…111 101
  5 => 0 00…00 101
-3 =>  1  11 … 11  101
  2 => 0 00…00 010

Python的认知

Python是89年开发的语言,创始人吉多·范罗苏姆(Guido van Rossum),别称:龟叔(Guido).
Python具有非常多并且强大的第三方库,使得程序开发起来得心应手.
Python程序员的信仰:人生苦短,我用python!

版本

python2x:原码不规范,重复较多
python3x:原码清晰,简单

编译型与解释型语言区别

编译型:一次性,把所有代码编译成机器能识别的二进制,在运行
代表语言:c,c++
优点: 执行速度块
缺点: 开发速度慢,调试周期长

解释型:代码从上到下一行一行解释并运行
代表语言:python,php
优点: 开发效率快,调试周期短
缺点: 执行速度相对慢
python语言可以直接在linux和windows跨平台使用.

python的解释器

  1. Cpython(官方推荐)
    把代码转化成c语言能识别的二进制码
  2. Jpython
    把代码转化成java语言能识别的二进制码
  3. 其他语言解释器
    把代码转化成其他语言能识别的二进制码
  4. PyPy
    将所有代码一次性编译成二进制码,加快执行效率(模仿编译型语言的一款python解释器)

注释

就是对代码的解释 方便大家阅读代码

  1. 注释的分类
    单行注释:用#号开头,后面跟上任意字符
    多行注释:语法可以是成对的三个单引号''' ''' 可以是成对的三个双引号 """ """ 并且支持跨行
  2. 注释的注意点
    当三个单引号和三个双引号同时存在的时候,要注意
    如果外面是三个单引号,里面用三个双引号
    如果外面是三个双引号,里面用三个单引号
  3. 注释的排错性
    包裹一部分代码,执行另外一部分,查看是否报错,进行一一排查

变量

可以改变的量,实际具体指的是内存中的一块存储空间

  1. 关于变量的含义

    a = 5
    print(a)
    

    写完a=5 在内存里面开辟两个空间 分别是5这个值和变量a这个名
    并且让变量a指向5这个值,形成一种映射关系.这个映射关系就是地址.
    Alt

  2. 变量的声明
    只有以下三种:

    a = 5
    b = 6
    print(a)
    print(b)
    
    a,b = 5,6
    print(a)
    print(b)
    
    a = b = 10
    print(a,b)
    
  3. 变量的命名

         变量的命名
    字母数字下划线,首字符不能为数字
    严格区分大小写,且不能使用关键字
    变量命名有意义,且不能使用中文哦

    import 引入 keyword 模块,用来获取所有关键字

    import keyword
    print(keyword.kwlist)
    
  4. 变量的交换

    a = 11
    b = 12
    
  • python特有:
    a, b = b, a
    print(a, b)
    
  • 通用写法:
    a = 11
    b = 12
    temp = a
    print(temp)
    a = b
    print(a)
    b = temp
    print(a, b)
    

常量就是不可改变的量,python当中没有明确定义常量的关键字,所以约定俗成把变量名大写就是常量,表示不可改变

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值