进制之间转换——day_01
一、计算机文件大小单位
二、进制之间的转换 (数字都是0开始,在几进制的基础上少1,从0计算)
二进制:由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
2.1 二进制转换十进制
1 2 3 4 | #例如 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 = 165 1 * 2 ^ 0 分析 左边第一位为二进制右边第一位,后面以此类推, 2 ^ 0 : 2 为固定数字,^ 0 表示几次幂,几次幂逐渐递增。 2 ^ 0 就表示 2 的 0 次幂,任何数的 0 次幂为 1 |
2.1.1 八进制转十进制
1 2 3 4 5 | 例如: 0o127 运算: 7 * 8 ^ 0 + 2 * 8 ^ 1 + 1 ^ 8 ^ 2 = 87 7 * 8 ^ 0 分析 左边第一位为八进制右边第一位,后面一次类推, 8 ^ 0 : 8 为固定数字(表示几进制),^ 0 表示几次幂,几次幂逐渐递增。 8 ^ 0 就表示 8 的 0 次幂 |
2.1.2 十六进制转十进制
1 2 3 | #例如:0xff 运算: 15 * 16 ^ 0 + 15 * 16 ^ 1 = 255 15 * 16 ^ 0 分析: 左边第一位 15 为十六进制右边第一位。 16 ^ 0 表示 16 进制的 0 次幂 |
2.1.3: 十进制转二进制
1 2 3 4 | 426 = > 0b110101010 运算过程: 用 426 除以 2 ,得出的结果再去不停地除以 2 , 直到除完最后的结果小于 2 停止, 在把每个阶段求得的余数从下到上依次拼接完毕即可 |
2.1.4 十进制转八进制
1 2 3 4 | 426 = > 0o652 运算过程: 用 426 除以 8 ,得出的结果再去不停地除以 8 , 直到除完最后的结果小于 8 停止, 在把每个阶段求得的余数从下到上依次拼接完毕即可 |
2.1.5 十进制转十六进制
1 2 3 | 运算过程: 用 426 除以 16 ,得出的结果再去不停地除以 16 , 直到除完最后的结果小于 16 停止, 在把每个阶段求得的余数从下到上依次拼接完毕即可 |
2.1.6 二进制与八进制转换
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 二进制与八进制对应关系: 八进制 二进制 0 000 1 001 2 010 3 011 4 100 5 101 6 110 7 111 例: 1010100101 八进制:从右向左 3 位一隔开 不够三位用 0 补位 变成: 001 010 100 101 0o 1 2 4 5 |
2.1.7 二进制与十六进制转换
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | 十六进制 二进制 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 |
2.1.8 八进制与十六进制的转换
1 2 | 先转换成二进制 再去对应转换 比如: 0x2a5 转换成 1010100101 再转 8 进制 0o1245 |
2.2 原码,反码,补码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | #1.原码和补码都是二进制数据 原码:二进制的表现形式 反码:二进制码 0 变成 1 , 1 变成 0 叫做反码,[原码][补码]之间的转换形式.(首位符号位不取反) 补码:二进制的存储形式 数据用原码形式显示 数据用补码形式存储 [原码] 和 [补码] 可以通过[反码]互相转化,互为取反加 1 #2.原码的正负关系: 原码特点:第一位是 1 00000000 1 表达数字正 1 10000000 1 表达数字负 1 #3.补码的正负关系: 补码特点:高位都是 1 00000000 1 表达数字正 1 11111111 1 表达数字负 1 #4.运算顺序: 补码 - > 原码 - > 最后人们看到的数 * * * 进制转换的时候需要先把内存存储的补码拿出来变成原码在进行转换输出 * * * 转换规律: 如果是一个正数: 原码 = 反码 = 补码 如果是一个负数: 原码 与 反码 之间 , 互为取反加 1 原码 = 补码取反加 1 给补码求原码 补码 = 原码取反加 1 给原码求补码 练习: # 9的补码是多少? 原码 0000 0000 1001 反码 0000 0000 1001 补码 0000 0000 1001 分析: 1001 表示 9 的二进制 故原码就为 0000 0000 1001 ,因为是正数故原码反码补码都是一样的 # -9的补码是多少? 原码 0000 0000 1001 反码 1111 1111 0110 补码 1111 1111 0111 分析: 1001 表示 9 的二进制 故原码就为 0000 0000 1001 ,因为为 - 9 ,故负数的反码为原码取反,故为 1111 1111 0110 ,补码为反码 + 1 ,为 1111 1111 0111 当然也可以直接理解为负数的补码为原码取反 + 1 #给补码求原码 # 1111 ... 0011 (高位都是1) 负数 互为取反加1 补码 1111 ... 0011 原码 1000 ... 1101 分析:已知为负数,故高位左边第一位为 1 ,首先先取反,故反码为 1000. .. 1100 ,然后原码为再加 1 为 1000. .. 1101 # 0000 ... 1010 (高位都是0) 正数 原码 = 反码 = 补码 补码 0000 ... 1010 原码 0000 ... 1010 分析:正数为 原码 = 反码 = 补码 #运算相加 ''' # 9+(-5) 用二进制相加运算一下 ''' 9 的 :原码 0000 1001 反码 0000 1001 补码 0000 1001 - 5 的:原码 1000 0101 反码 1111 1010 补码 1111 1011 9 + ( - 5 ): 0000 1001 1111 1011 0000 0100 (最终结果) 分析:首先先求出 9 的补码,再求出 - 5 的补码,最后结果相加 就得出 4 的补码 |
__EOF__

本文作者:404 Not Found
本文链接:https://www.cnblogs.com/weiweivip666/p/12795670.html
关于博主:可能又在睡觉
版权声明:转载请注明出处
声援博主:如果看到我睡觉请喊我去学习
本文链接:https://www.cnblogs.com/weiweivip666/p/12795670.html
关于博主:可能又在睡觉
版权声明:转载请注明出处
声援博主:如果看到我睡觉请喊我去学习
-------------------------------------------
个性签名:代码过万,键盘敲烂!!!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人