当前位置:首页 » 《随便一记》 » 正文

如何口算秒杀补码转换?_kikokingの比特宇宙

24 人参与  2022年04月18日 08:36  分类 : 《随便一记》  评论

点击全文阅读


🌕写在前面


  • 🍊博客主页:kikoking的江湖背景
  • 🎉欢迎关注🔎点赞👍收藏⭐️留言📝
  • 🌟本文由 kikokingzz 原创,CSDN首发!
  • 📆首发时间:🌹2021年11月25日🌹
  • 🆕最新更新时间:🎄2021年11月25日🎄
  • ✉️坚持和努力一定能换来诗与远方!
  • 🙏作者水平很有限,如果发现错误,请留言轰炸哦!万分感谢感谢感谢!

本系列为拓展专题,文章都不会太长,但是都对日后的编程学习有很大帮助

或许会给你提供一个新的解题思路也不一定哦!欢迎订阅本专栏,每周更新!


目录

🌕写在前面

🦸‍♂️:题目1.你能在5秒内写出 -6 的32位补码吗?

🦸‍♂️:题目2.你能3秒说出这个32位的补码对应的十进制值是多少吗?

❗️常规计算模式如下

✅修炼第一步

✅考前抱佛脚

⭕️终极面试

🍊ps:计算机中对于有符号数存储的是补码形式!


你进入考场,面试官对面微微一笑:

🦸‍♂️:题目1.你能在5秒内写出 -6 的32位补码吗?

🦸‍♂️:题目2.你能3秒说出这个32位的补码对应的十进制值是多少吗?

             11111111 11111111 11111111 11111101

🧑‍💻:如果你在脑海里还在想着原码、反码和补码转换,那只能说5秒真的不够用

🧑‍💻:但如果你掌握了下面的方法,3秒足以!

✨✨✨我是分割线✨✨✨

❗️常规计算模式如下


整数有3种二进制表示形式

1.原码

2.反码

3.补码


正整数——原码、反码、补码相同

int a =5; //a是正数
a 是整型,a占4个字节——>32位

00000000 00000000 00000000 00000101 —— 原码
00000000 00000000 00000000 00000101 —— 反码
00000000 00000000 00000000 00000101 —— 补码

 负整数——原码、反码、补码不同要进行计算

✨✨✨我是分割线✨✨✨ 

✅修炼第一步


想要快速写出补码,我们首先要了解 将补码转换为十进制的转换方式

可见,补码的最高位位权为负,其余计算方式同二进制转十进制相同,于是我们如果能够熟练记忆二进制的位权,那么补码是不是就可以随手写了呢?

对!我们看这道小题


✨✨✨我是分割线✨✨✨ 

✅考前抱佛脚


 单单仅依靠补码编码的定义可以5秒内写出补码,但是32位的补码该如何写出呢?这里我们还需要知道 补码数的符号扩展:

 ·3位补码[101]表示值-4+1= -3;对它应用符号扩展,得到4为补码[1101], 表示的值 -8+4+1=-3;我们可以看到, 对于[1101], 最高两位的组合值是 -8+4=-4, 与[101]时符号位的值相同;类似地,位向量[111]和[1111]都表示值一1


我们不难发现,只要在补码的左边补上原补码的最高位的数字(1或0,这里是1,那么无论扩充到多少位,补码的值始终不变!

[11] = -2 + 1 =  -1

[111] = -4 + 2 + 1 =-1

[1111] = -8 + 4 + 2 + 1 = -1

[11111] = -16 + 8 +4 + 2 + 1 =-1

✨✨✨我是分割线✨✨✨ 

⭕️终极面试


考官出题1:同学,你能在5秒内写出-6的补码吗,要求是32位的哦补码哦!

应用---->补码数的符号扩展

 回答正确!


 考官出题2:你能3秒说出这个32位的补码对应的十进制值是多少吗?

                            11111111 11111111 11111111 11111101

解:kikoking想法如下:

补码数符号扩展的逆运算可得 上面的32位补码的实质是3位补码[101]扩展到32位

也就是 -4 +1 =-3

回答正确!

✨✨✨我是分割线✨✨✨ 

🍊ps:计算机中对于有符号数存储的是补码形式!


11111111 11111111 11111111 11111011 —— -5的补码
 f   f    f    f    f   f   f    b

VS编译器在内存窗口是16进制的 即 0xfffffffb

 小端法显示:


点击全文阅读


本文链接:http://zhangshiyu.com/post/38299.html

补码  反码  我是  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1