首页 > 其他分享 >01-进制之间的转换

01-进制之间的转换

时间:2023-02-17 02:44:05浏览次数:36  
标签:十六进制 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
00000000 1 表达数字正1
10000000 1 表达数字负1

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

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

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

标签:十六进制,01,转换,进制,二进制,补码,八进制,原码
From: https://www.cnblogs.com/Icer-newer/p/17128800.html

相关文章

  • Python 进制转换
    内置函数:int(x,base=10)print(int('0101',2))#二进制转换为十进制print(int('27',8))#八进制转换为十进制print(int('A0',16))#十六进制转换为十进制 将十进制......
  • 类型转换
    隐式转换遵循从小向大的转换原则,如整数类型数据中转换的顺序为Shortint→Smallint→Longint→lnt64vari:Shortint;j:Smallint;k:Longint;l:Int64;begin......
  • 代码随想录算法训练营第十五天【二叉树】层序遍历、226.翻转二叉树、101.对称二叉树
    层序遍历 226.翻转二叉树 101.对称二叉树  ......
  • java数据类型转换
    title:java基本数据类型转换time:2023-1-15-16-32-6900当把一种基本数据类型的值赋给另一种变量时,就涉及到数据转换。将这些类型按精读由低到高排列:byteshortchar......
  • JavaScript 基础 - Day01
    了解变量、数据类型、运算符等基础概念,能够实现数据类型的转换,结合四则运算体会如何编程。体会现实世界中的事物与计算机的关系理解什么是数据并知道数据的分类理解......
  • Day01 Markdown学习
    Markdown学习标题:#+空格+标题:一级标题##+空格+标题:二级标题###+空格+标题:三级标题……最多到六级标题 字体:Hello,World!两个*加粗Hello,World!一个*斜体......
  • 01-Elasticsearch的安装与启动
    1.验证jdk首先需要验证系统是否已经安装jdk,要求使用jdk1.8以上版本[root@app110~]#java-versionjavaversion"1.8.0_201"Java(TM)SERuntimeEnvironment(......
  • Kubernetes二进制安装
    目录:操作系统初始化配置部署docker引擎部署etcd集群准备签发证书环境部署Master组件部署WorkerNode组件部署CNI网络组件部署flannel部署Calico部署Core......
  • 内网渗透-winserver2012抓取明文密码
    问题引入:winserver2012使用mimikatz是无法抓取明文密码的,要获取明文密码需要修改其注册表。法一:在未修改注册表的情况下,使用mimikatz来读取密码:privilege::debugseku......
  • 两次循环搞定一维数组到多位数组的转换(菜单树生成)
    原数组:constarr=[{id:1,title:'第一层1000',parentId:0},{id:2,title:'第一层2000',parentId:0},{id:3,title:'第二层1100',parentId:1......