当前位置: 首页 > news >正文

补码的理解,想明白了觉得还挺有趣的

原因:

之前会一直好奇补码为什么是这么设计的,刚刚发呆的时候突然就明白了。

设计目的:

要理解,补码的设计初衷是为了计算机的计算问题。计算机的加法计算是非常简单的,但是对于减法,因为要借位,所以每次计算起来是很麻烦的。

利用 钟表 理解加法等效减法

想明白的原因是因为看了眼手机上的表。
假如现在是5点,如果我想拨到3点,有两种拨法,逆时针拨两小时,或者,顺时针拨10小时。
所以,如果忽略掉前面符号位,减法是可以等效为加法的。
以4bit整数为例:
最大表示值为7,则对于任何数字N,忽略符号位,-N等效于+8-N,而对于3bit(不考虑符号位)而言,直接取反相当于7-N,所以需要再+1
到这里就明白了,为什么:除符号位以外,取反+1。是为了用加法等效减法。

最后的符号位呢?

最后的符号,设计的目的,就是为了表示一下,在反方向拨钟表时,是否会拨过0点
如果拨不到0点,就是负数,如果拨的过0点,就是正数。所以什么时候拨的过呢?拨过之后,就会发生加法溢出,就会向前冲一位,就会把负数第一位的符号位冲掉。

http://www.lryc.cn/news/384864.html

相关文章:

  • FuTalk设计周刊-Vol.027
  • 抖音外卖服务商有哪些,盘点这几家正规服务商!
  • sh脚本模块笔记
  • 关于服务器的一些知识
  • 力扣-和为K的子数组
  • 写一个坏越个人天地(五)
  • 步步精科技诚邀您参加2024慕尼黑上海电子展
  • Spring Boot中如何配置和使用多数据源
  • vue3 【提效】全局布局 vite-plugin-vue-layouts 实用教程
  • 前端性能优化-实测
  • 【Linux】初识操作系统
  • 等保2.0中,如何确保云服务提供商的数据主权合规?
  • 【AI大模型】Transformers大模型库(十四):Datasets Viewer
  • 一个例子理解傅里叶变换的计算过程
  • 2-2到2-4
  • Vatee万腾平台:一站式智慧服务,让生活更美好
  • 如何选择一个好的汽车油封制造商?
  • 构建高效的电商返利系统:架构设计与实现
  • 如何使用 Python 交互式解释器?
  • C++日期类的完整实现,以及this指针的const修饰等的介绍
  • 缓冲区溢出
  • step7:“模拟量界面”逻辑
  • Arduino - 继电器
  • 状态压缩DP——AcWing 327. 玉米田
  • kafka(二)安装部署(2)windows
  • aliplayer Server returned 403 Forbidden (access denied)
  • 单例模式(下)
  • 合约期VS优惠期,搞明白他们的区别才能避免很多坑!
  • 函数式反应式编程(FRP)在Scala中的实践与探索
  • NGINX配置web文件服务