我个人理解two's complement的方式

本篇文章的主要目的:让已经了解two's complement运算规则的人,提供一个了解其为何如此神奇的理解方式

神奇的运算规则

学校老师在教two's complement时,大概都会提到一个把正数转为负数的简易算法,例如:

Q: 现在有8 bits的表示空间,要用这8 bits表示-5该如何表示?
A:

  1. 先表示出+5:
0000 0101
  1. 把0转成1,1转成0
1111 1010
  1. 再加上1,就是答案-5的表示方式了
  1111 1010
+)        1
-----------
  1111 1011 (ans = -5)

对於这两种规则的三个重点

  1. 电脑做减法时是用加上一个负数的方式计算,而不是真的做减法,如此一来就不需要再特别去做一个减法器
  2. 所谓的负数(-x)其实就是那个跟正数(x)相加之後为0的数
  3. 想达到第2点,就必须要使用overflow的特性

再以刚刚的例子来看
+5:

0000 0101

想让5跟其他的数相加後为0的方法:

  0000 0101 (原本的5)
  1111 1010
+)        1
-----------
1 0000 0000 (已经overflow了,以电脑的观点来看,这是0)

所以以电脑的观点而言

  1111 1010
+)        1
-----------
  1111 1011 (-5)

的部份就是那个与5相加後为0的那个数 => -5


<<:  在Excel中输入 AAAA……

>>:  机器学习:Feature Engineering 课程学习总结

[Day 16] 阿嬷都看得懂的通用 .html 档案结构

阿嬷都看得懂的通用 .html 档案结构 不知道各位聪明的阿嬷是否注意到,在前几天的讨论中,我们其实...

资讯治理(Data Governance)

数据管理员(Data Steward) 数据管理员是组织中的一个角色,负责利用组织的数据治理流程来...

REG档撰写—登录档脚本其实不难

今天要来介绍的是.reg文件的写法,要实作前请记得先做好备份喔! 这是当作给自己最後的作业,对登录档...

爱用iPhone的UI/UX设计师最恐怖

(这个标题有点耸动跟钓鱼,但不知道为什麽我就是很想用它,在文章开头先讲明。) 即使已经证实了苹果在i...

Day-12: ORM系虾米捏?

ORM (Object-relational mapping ) 是一种对映射关联式资料与物件资料的...