01-进制之间的转换

进制之间的转换

1.1 计算机硬件的基本认知

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

1.2 计算机文件大小单位

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

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

1.3 进制之间的转换

二进制:由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* 2^0 + 0* 2^1 + 1* 2^2 + 0* 2^3 + 0* 2^4 + 1* 2^5 + 0* 2^6 + 1* 2^7=
1 + 0 + 4 + 0 + 0 + 32 + 0 + 128 = 165

八进制转十进制

#例: 0o127
运算:78^0 + 28^1 + 1*8^2 = 7+16+64 = 87

十六进制转十进制

#例: 0o127
运算:78^0 + 28^1 + 1*8^2 = 7+16+64 = 87

十进制转2进制

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

十进制转8进制

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

十进制转十六进制

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

二进制与八进制之间转换

二进制与八进制对应关系:
八进制 二进制
0 000
1 001
2 010
3 011
4 100
5 101
6 110
7 111

二进制与十六进制转换

十六进制 二进制
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
a 1010
b 1011
c 1100
d 1101
e 1110
f 1111
例:1010100101
十六进制:从右向左 4位一隔开 不够四位用0补位 变成:
0010 1010 0101
0x2a5

八进制与十六进制之间转换

先转换成二进制 再去对应转换
比如:0x2a5 转换成 1010100101 再转8进制 0o1245

1.4 原码\反码\补码

# 1.原码 或 补码 都是二进制数据
原码: 二进制的表现形式
反码: 二进制码0变1,1变0叫做反码,[原码][补码]之间的转换形式.(首位符号位不取反)
补码: 二进制的存储形式

数据用[补码]形式存储
数据用[原码]形式显示
[原码] 和 [补码] 可以通过[反码]互相转化,互为取反加1

# 2.提出补码的原因
补码的提出用于表达一个数的正负(可实现计算机的减法操作)
计算机默认只会做加法,实现减法用负号: 5+(-3) => 5-3
乘法除法:是通过左移和右移 << >> 来实现

# 3.[原码]形式的正负关系:
原码特点: 第一位是1表示正数,第一位是0表示负数
00000000 1 表达数字正1
10000000 1 表达数字负1

# 4.[补码]形式的正负关系:
补码特点: 高位都是1负数,高位都是0正数
00000000 1 表达数字正1
11111111 1 表达数字负1

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

转换规律:
    如果是一个正数:  原码 = 反码 = 补码
    如果是一个负数:  原码 与 补码 之间 ,  互为取反加1 
                   原码 = 补码取反加1   给补码求原码
                   补码 = 原码取反加1   给原码求补码

# 6.原反补码计算
原码特点:(第一位是符号位,来表达正负)
第一位是0 00000000 1 表达数字正1
第一位是1 10000000 1 表达数字负1

补码特点:
正数高位都是0
负数高位都是1
源码每一位都参与运算

反码: 二进制码0变1,1变0叫做反码,[原码][补码]之间的转换形式.(首位符号位不取反)
5 + (-3) = 2
5
原码:101
反码:101
补码:101

-3
原码:1000 ... 011
反码:1111 ... 100
补码:1111 ... 101

0000 ... 101
1111 ... 101
0000 ... 010 => 2 (返回的数是正数 : 原码 = 反码 = 补码)

-5 + 3 = -2
-5
原码:1000 ... 101
反码:1111 ... 010
补码:1111 ... 011

3
原码:011
反码:011
补码:011

1111 ... 011
0000 ... 011
1111 ... 110 补码(返回的数是负数 : 原码 = 补码取反+1)

# 给你补码求原码(用来显示数据)
补码:1111 ... 110
反码:1000 ... 001
原码:1000 ... 010 => -2

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:01-进制之间的转换 - Python技术站

(0)
上一篇 2023年3月31日
下一篇 2023年3月31日

相关文章

  • 02-VS调试以及Qt基本使用

    VS调试以及Qt基本使用 1.汇编语言 1.1 VS中C语言嵌套汇编代码(了解) #include <stdio.h> int main() { //定义整型变量a, b, c int a; int b; int c; __asm { mov a, 3 //3的值放在a对应内存的位置 mov b, 4 //4的值放在b对应内存的位置 mov ea…

    C语言 2023年4月18日
    00
  • 01-C语言概述

    C语言概述 1.什么是C语言 C语言就是人和计算机交流的一种语言语言是用来交流沟通的。有一方说,有另一方听,必须有两方参与,这是语言最重要的功能: 说的一方传递信息,听的一方接收信息; 说的一方下达指令,听的一方遵循命令做事情。 语言是人和人交流,C语言是人和机器交流。只是,人可以不听另外一个人,但是,计算机是无条件服从。语言有独特的语法规则和定义,双方必须…

    C语言 2023年4月18日
    00
  • 04-数据类型转换

    数据类型 Number – 强制类型转换(int float bool complex) 1. 强制把数据转换为整型 – int float bool 纯数字字符串 # 强制把数据转换为整型 – int float bool 纯数字字符串 var1 = 13 var2 = 5.67 var3 = True var4 = “123456” var5 = “12…

    Python开发 2023年3月31日
    00
  • 02-python简介

    python简介 python认知 1、python简介 89年开发的语言,创始人范罗苏姆(Guido van Rossum),别称:龟叔(Guido).python具有非常多并且强大的第三方库,使得程序开发起来得心应手.Python程序员的信仰:人生苦短,我用python!开发方向: 机器学习人工智能 ,自动化运维&测试 ,数据分析&爬虫 …

    2023年3月31日
    00
  • 03-变量\常量\进制

    变量和数据类型 所有定义的变量都存在内存中,定义变量需要内存空间,不同类型的变量需要的内存空间是不同的数据类型作用:告诉编译器,我这个数据在内存中需要多大的空间,编译器预算对象(变量)分配的内存空间大小。 1.常量与变量 1.1 常量 常量:程序运行中不能改变的量 整型常量:1 200 字符常量: ‘c’ 字符串常量:”hello” 实型常量(浮点型常量):…

    C语言 2023年4月18日
    00
  • 05-python运算符

    运算符 算术运算符 算数运算符: + – * / // % ** # + var1 = 7 var2 = 90 res = var1 + var2 print(res) # 97 # – var1 = 7 var2 = 90 res = var1 – var2 print(res) # 83 # * var1 = 7 var2 = 10 res = var1…

    Python开发 2023年3月31日
    00
  • 03-数据类型

    数据类型 Number – 数字类型 数字类型包含int,float,bool,complex类型 int – 整型 整型 – 正数,负数,0 # type(variable) 可以查看变量的类型 # id(variable) 可以查看变量的地址 age = 18 res = type(int) # int res_id = id(age) # 返回内存地址…

    2023年3月31日
    00
合作推广
合作推广
分享本页
返回顶部