这几天正在看补码的问题,发现这个东西实在是太神奇了,

在计算机存储的都是按照补码的方式,这样的方式可以进行计算,但是除了补码还有原码和反码

他们虽然都可以表示数字,但是原码和反码不能进行计算,就是不符合计算规则,怎么使用都是不行的

这个时候就出现了,补码的规则,这种规则可以让计算几中的数字进行计算,简单的说就是

让两个相反数相加结果为0,按照补码的规则是可以行的通的。

在这里我就要简单的说一下,取反操作和一个数字的相反树,这两个操作是不一样的,

他们之间是有区别的:

什么是取反操作呢,简单的讲在计算中我们都是知道任何数字还是字符都是以二进制形式存在的。

取反的操作就是在写变量名之前加上一个(~)符号之后就是进行的取反操作,他是把二进制中1 变成 0,0 变成 1

由于二进制中除了1 就是 0 ,所以,可以这样的操作。

什么是相反数呢 ?

小学的时候自己有没有给一个数字进行相反数的操作,这样的例子实在是太多了,但是在计算机中是不一样的操作

首先你要明白,如何表示负数,这个负数的概念在一开始学习变成语言的时候我是不明白的,在后来的学习的过程中

我清楚的知道了,这个负数和整数的储存是有区别,

例如:

一个 变量里 存放了一个 数字 3

请问他的二进制形式是多少呢 ?

这样的问题在一开始学习编程语言的时候经常的遇到

答案就是 :0000 0011

但是你有没有想过 -3 是什么样的二进制 :

要想知道-3在计算机中的二进制形式也是非常简单的:

只要把他进行按位计算就可以一个一个的输出来

答案是 : 1111 1101

这就是-3的二进制表示形式,虽然在学校里我们知道在二进制的最高位

是用来表示他们的符号的,简称符号位,但是你有没有发现就算是最高位是1

但是其他位也不需要1这个数字了,为什么出现了这样的二进制形式呢?

答案就是他使用了 补码表示法 :

在创建补码表示法的时候,发现,如果给一个数字进行取反,然后在末尾加1之后在和原来的数字相加一定会等于0

所以,补码表示法就这样创建了。

利用补码表示法就可以简单的进行计算了,而且十分的简单。

取反(~)和相反数 是不一样的!!!相关推荐

  1. 运算符 相与、相或、相异或、取反、左移、右移

    运算 符号 解释 例子 与 & 两个数字相与:当两个数字对应的二进位均为1时,结果位为1,否则为0.参与运算的数以补码出现. 3&5 => 0000 0011 & 000 ...

  2. python取相反数_笔试题python基础总结

    #python a = [1, 2, 3] b=a a.append(4) b.append(5) print(a,b) 输出: [1, 2, 3, 4, 5] [1, 2, 3, 4, 5] > ...

  3. 位运算(按位与、按位或、异或、取反)以及原码、反码、补码

    参考:运算符的计算(按位与 按位或 异或 取反) 作者:一只青木呀 发布时间: 2020-07-23 18:13:55 网址:https://blog.csdn.net/weixin_45309916 ...

  4. 位运算获取相反数详解

    位运算有很多化腐朽为神奇的操作,取相反数就位列其中,我们总是用[取反+1]来求相反数,就如同公式一样使用,可否曾仔细琢磨过其中的原理呢? 为什么[取反+1]是相反数? 在数学中,互为相反数的两数相加为 ...

  5. Python——~取反操作

    ~取反操作 >>>~1 -2 >>>~-1 0 ~:求补码,即将原数(十进制)取相反数再减一.

  6. 整数补码——如何定义相反数。

    整数补码--如何定义相反数. 出现的原因 想要表示3+5,可以转化为8位2进制:0000 0011+0000 0101=0000 1001. 结合二进制加法,这是很容易的.那么减法该怎么办? 3-2= ...

  7. 二进制补码为什么是原码取反加一

    二进制补码为什么是原码取反加一 一.二进制和原码的定义 二进制 原码 二.反码和补码的形式 反码 补码 三.补码为什么是原码取反加一 补码的出现 补码的原理 反码的确定 四.总结 强调: 一.二进制和 ...

  8. 位运算符:按位与(),按位或(|),按位异或(^),取反(~)左移()和右移()

    数据在内存中是以二进制的形式存放的,计算机存储数据的最小单位是位(bit),一个二进制位可以表示两种状态(0和1),一个字节通常由8位二进制位组成.C语言支持按位运算,按位运算也就是对字节或者字中的实 ...

  9. c语言相反数补码,C语言中补码的整数运算特性

    前言 本篇博客以"SSD6-Exercise2-Data Lab: Manipulating Bits"为例,分析在对C语言中的整数采用补码(two's-complement)编码 ...

最新文章

  1. Flutter从0基础到App上线
  2. 以完美主义的名义,拖延症在公开掠夺
  3. javaScript中的事件对象event是怎样
  4. HTTP,FTP,TCP,UDP及SOCKET
  5. Spring MVC实现Spring Security,Spring Stomp websocket Jetty嵌入式运行
  6. Windows 下 OpenGL ES 开发环境搭建
  7. 高级C语言教程编码风格
  8. 每个私有静态方法都是新类的候选人
  9. python rsa加密之后byte类型存储到数据库中_python3 rsa加密
  10. outlook反应慢的原因_保险管怎么区分慢熔和快熔?
  11. 一篇彻底搞懂jsp内置对象
  12. 人民币兑换、换硬币 C语言
  13. linux安装windows常用中文字体库
  14. 近世代数--环--环的一些基本概念
  15. 教程丨GIS制图教程01
  16. Android蓝牙4.0之传输速率的提升
  17. freertos认识(freertos篇-1)
  18. 大数据和人工智能到底是什么关系
  19. 苹果8p电池多少毫安的_买得起手机未必用得起售后:苹果iPhone12修一下多少钱?|iphone12|手机|电池|iphone...
  20. 八、Linux全套大总结

热门文章

  1. 笨鸟的平凡之路-win10虚拟机安装MAC OS
  2. 安全无小事,防患于未然
  3. 前端初级新人,如何撕去菜鸟标签
  4. VOA英语新闻摘要及总结
  5. Quick MTF 照相机镜头图像质量测试程序-UPDATE
  6. pytorch使用tensorboard
  7. 洛谷 P1768 天路
  8. 【工作日志】elementUI学习-Layout布局
  9. TensorFlow Slim 工具包使用
  10. 文件后缀名对应的Content-Type表