12下一页
返回列表 发新帖

【基础教程】进制转换与计算机计算原理详解

[复制链接]

39

主题

688

回帖

2675

积分

大学生

Rank: 5Rank: 5

金币
943
好评
3
信誉
100

考神

QQ
发表于 2023-1-8 15:13:30 来自手机  | 显示全部楼层 | 阅读模式  来自 河南
本帖最后由 2421746310 于 2023-1-8 17:11 编辑

  此内容是我在《韩顺平循序渐进学Java》中做的有关于进制转换与计算机计算原理的笔记

如有错误请指出

本贴只讲原理,若需要进制转换还是用工具比较方便

0b或0B表示二进制
0表示八进制
0x或0X表示十六进制

十六进制中
A表示10
B表示11
C表示12
D表示13
E表示14
F表示15

二进制转换为十进制实例:
规则:从最低位(右边)开始,将每个位上的数提取出来,乘以2的(位数-1)次方,然后求和
案例:将 0b1011 转成十进制的数
0b1011 = 1 * 2的(1-1)次方 + 1 * 2的(2-1)次方 + 0 * 2的(3-1)+  1 * 2的(4-1)次方 = 1 + 2 +  0 + 8 = 11

八进制转换为十进制实例
规则:从最低位(右边)开始,将每个位上的数提取出来,乘以8的(位数-1)次方,然后求和
案例:将 0234 转成十进制数
0234 = 4 * 8^0 + 3 * 8^1 + 2 * 8^2 = 4 + 24 + 128 = 156

十六进制转换为十进制实例
规则:从最低位(右边)开始,将每个位上的数提取出来,乘以16的(位数-1)次方,然后求和
案例:请将0x23A转成十进制的数
0x23A = 10 * 16^0 + 3 * 16^1 + 2 * 16^2 = 10 + 48 + 512 = 570

十进制转换成二进制
规则:将该数不断除以2,直到商为0为止,然后将每步得到的余数倒过来,就是对应的二进制
案例 : 请将34转换为二进制
34 / 2 = 17 余 0
17 / 2 = 8 余 1
8 / 2 = 4 余 0
4 / 2 = 2 余 0
2 / 2 = 1 余 0
1
所以结果为0b100010,因为一个字节有八位,而这个数只有六位,所以实际结果为0b00100010

十进制转换成八进制
规则:将该数不断除以8,直到商为0为止,然后将每步得到的余数倒过来,就是对应的八进制
案例 : 请将131转换为八进制
131 / 8 = 16 余 3
16 /8 = 2 余 0
2
所以结果为0203

十进制转换成十六进制
规则:将该数不断除以16,直到商为0为止,然后将每步得到的余数倒过来,就是对应的十六进制
案例 : 请将237转换为十六进制
237 / 16 = 14 余 13 --> D
14 --> E
所以结果为0xED

二进制转换成八进制
规则:从低位开始,将二进制数每三位一组,转成对应的八进制数即可
案例:请将0b11010101转换为八进制
0b11010101 => 0325
101 => 5
010 => 2
11 => 3

二进制转换成十六进制
规则:从低位开始,将二进制数每四位一组,转成对应的十六进制数即可
案例:请将0b11010101转换为十六进制

0101 => 5
1101 => 13 --> D
结果为0xD5

八进制转换成二进制
规则:将八进制数每一位,转换成对应的一个三位的二进制数即可
案例:0237转换成二进制
0237
7 --> 111
3 --> 011
2 --> 010
最后结果为0b010011111

十六进制转换成二进制
规则:将十六进制数每一位,转换成对应的一个四位位的二进制数即可
案例:0x23B转换成二进制
0x23B
B = 11 => 1011
3 => 0011
2 => 0010
结果为001000111011

计算机计算原理
我们都知道计算机是通过二进制来计算的
一个字节有八个bit
比如将2转换为二进制为0000 0010
而负二则是1000 0010
二进制位的最大单位(就是从左向右数第一个)是用来表示正与负的
0表示正  1表示负

然后需要明白三个名词
原码 反码 补码
原码指的是讲一个十进制数转换为二进制
例如3转换为二进制就是0000 0011
这个就是原码

反码就是负数除了符号位(即指的从左向右数第一位)
1转成0   而0转成1
例如1000 0011的反码就是1111 1100
而正数的反码为它们本身

接下来就是补码
补码就是反码+1
例如1000 0011的反码是1111 1100
则它的补码就是 1111 1101
而正数的补码也为它本身

总结:
正数:原码=反码=补码
负数:反码=原码出符号位外
1转成0  0转成1
补码=反码+1

在计算机运算中都是用的补码接下来讲原因
加入让计算机运行1 - 1=
它是这样运算的
1 - 1 = 1 + (-1)
1转换成二进制为0000 0001
-1转换成二进制为1000 0001
    0000 0001
+
    1000 0001
–––––––––––––––––––––
    1000 0010
最后结果为1000 0010这是源码计算的结果
转换为十进制是-2
但是我们都知道1-1=0
这种结果是错误的

接下来看反码
1 - 1=1 + (-1)
1转换成二进制为0000 0001
1的反码为0000 0001
因为正数的反码为它们本身
-1转换成二进制为1000 0001
反码为1111 1110
0000 0001
+
1111 1110
––––––––––––––
1111 1111
因为我们是用的反码运算所以最后结果也得用反码反转过来
1111 1111的反码为1000 0000
转换成十进制也就是-0
冷知识:因为1000 0000转成十进制不为-0
-0是不需要存在的,所以为了节省
1000 0000转成十进制为-128
所以也不正确

接下来看补码
1转换成二进制为0000 0001
补码为0000 0001
-1转换成二进制为1000 0001
补码为1111 1111
  0000 0001
+
  1111 1111
––––––––––––––
1 0000 0000
因为一个字节只有8个二进制位
所以最前面那个1不会被保存
只会留下8个0
这样就正好是0
这就是为什么要用补码的原因

字我都是一个一个打的,希望能点个赞
回复

使用道具 举报

16

主题

4251

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
751
好评
5
信誉
150

MT论坛帅哥考神

发表于 2023-1-8 15:22:34 来自手机  | 显示全部楼层  来自 四川
感谢分享
回复

使用道具 举报

39

主题

688

回帖

2675

积分

大学生

Rank: 5Rank: 5

金币
943
好评
3
信誉
100

考神

QQ
发表于 2023-1-8 15:37:38 来自手机  | 显示全部楼层  来自 河南
孤独散人 发表于 2023-1-8 15:21

回复

使用道具 举报

39

主题

688

回帖

2675

积分

大学生

Rank: 5Rank: 5

金币
943
好评
3
信誉
100

考神

QQ
发表于 2023-1-8 15:41:17 来自手机  | 显示全部楼层  来自 河南
孤独散人 发表于 2023-1-8 15:21

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

276

主题

3055

回帖

9665

积分

硕士生

A patriot

Rank: 6Rank: 6

金币
220
好评
19
信誉
131

MT论坛帅哥MT论坛新人考神MT论坛最佳新人MT论坛活跃会员MT论坛灌水老大

发表于 2023-1-8 15:41:53 来自手机  | 显示全部楼层  来自 河南
2421746310 发表于 2023-1-8 15:41

抱歉,大佬,刚才没看见,对不起
回复

使用道具 举报

483

主题

2万

回帖

6万

积分

版主

喵喵,喵~

Rank: 7Rank: 7Rank: 7

金币
44808
好评
304
信誉
126

MT论坛灌水老大MT论坛最佳新人2019-5.1节快乐考神MT论坛侠客MT论坛活跃会员MT论坛新人挂机大佬

发表于 2023-1-8 15:48:07 来自手机  | 显示全部楼层  来自 山东
工具还是有滴转码工具箱

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

124

主题

4804

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
1194
好评
19
信誉
149

MT论坛最佳新人考神

发表于 2023-1-8 16:02:38 来自手机  | 显示全部楼层  来自 山东
谢谢分享
回复

使用道具 举报

0

主题

7274

回帖

2万

积分

博士后

Rank: 8Rank: 8

金币
2247
好评
8
信誉
124

考神

发表于 2023-1-8 16:05:12 来自手机  | 显示全部楼层  来自 广东
感谢分享
回复

使用道具 举报

41

主题

3248

回帖

9145

积分

硕士生

睡觉

Rank: 6Rank: 6

金币
1276
好评
45
信誉
130

考神

QQ
发表于 2023-1-8 16:10:48 来自手机  | 显示全部楼层  来自 江西
感谢分享
回复

使用道具 举报

4

主题

6254

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
3952
好评
5
信誉
96

考神MT论坛帅哥MT论坛新人

发表于 2023-1-8 16:17:27 | 显示全部楼层  来自 河南
多谢分享
回复

使用道具 举报

12

主题

2821

回帖

6967

积分

硕士生

Rank: 6Rank: 6

金币
126
好评
1
信誉
99
发表于 2023-1-8 16:20:13 来自手机  | 显示全部楼层  来自 山东
谢谢分享
回复

使用道具 举报

276

主题

3055

回帖

9665

积分

硕士生

A patriot

Rank: 6Rank: 6

金币
220
好评
19
信誉
131

MT论坛帅哥MT论坛新人考神MT论坛最佳新人MT论坛活跃会员MT论坛灌水老大

发表于 2023-1-8 16:22:38 来自手机  | 显示全部楼层  来自 河南
喵喵猫 发表于 2023-1-8 15:48
工具还是有滴转码工具箱

这个不是那个大佬的吗?
回复

使用道具 举报

30

主题

6068

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
6243
好评
12
信誉
98
发表于 2023-1-8 16:41:09 来自手机  | 显示全部楼层  来自 安徽
感谢分享,已学习
回复

使用道具 举报

175

主题

8838

回帖

2万

积分

博士后

Rank: 8Rank: 8

金币
7383
好评
29
信誉
165

MT论坛新人MT论坛帅哥考神MT论坛最佳新人MT论坛灌水老大MT论坛活跃会员

发表于 2023-1-8 16:58:44 来自手机  | 显示全部楼层  来自 河南
感谢分享
回复

使用道具 举报

3

主题

2454

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
2026
好评
0
信誉
101

考神MT论坛新人MT论坛最佳新人MT论坛帅哥

发表于 2023-1-8 17:12:17 | 显示全部楼层  来自 广东
大佬发帖必出精品 谢谢分享
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表