IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python基础入门之二进制的负数 -> 正文阅读

[Python知识库]Python基础入门之二进制的负数

刚刚介绍了位运算符,里面涉及到了二进制的运算,出现了a = 60,~a = 1100 0011 = -61的计算,所以这里记录一下二进制的负数表示和计算。

二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。

它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现。当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。计算机中的二进制则是一个非常微小的开关,用“开”来表示1,“关”来表示0。

在二进制码中,采用最高位是符号位的方法来区分正负数,正数的符号位为0、负数的符号位为1。二进制的负数表示,只要将原码正数的每位取反码,再在所得数的末位加1,则正好得到负数的补码,最后求得的补码即负数的二进制表示结果,这简称“取反加1”。

比如整数 -1,以8位二进制表示有符号数,正数:0000 0001,取反:1111 1110,补码:1111 1111,即 -1 = 1111 1111,有没有发现什么?

是的,会发现:正数+补码 = 0,即 1 + (-1) = 0,验证没问题。

下面通过另一种8位二进制的方式来解释。

十进制数字,在计算机中,是以二进制存储:

十进制 +0,二进制 0000 0000;

十进制?+1,加?1,二进制?0000 0001;

十进制?+2,加 1,二进制?0000 0010;

......

十进制?+127,加 1......就加到了?0111 1111;

负数怎么办? 你就从 0,依次递减吧。

十进制?0,以二进制 0000 0000?存放。

十进制 -1,减?1,得?1111 1111 = 255(十进制)。

十进制?-2,减 1,得?1111 1110 = 254。

十进制?-3,减 1,得?1111 1101 = 253。

......

十进制?-128,减 1......得?1000 0000 = 128。

不要再减了,这就是最小值了。

(再继续减,就是 0111 1111,这就是+127 了。)

因此,最小的负数是-128,存放的是 10000000。

总结:

  零和正数:直接用二进制存放。

  负数:存放形式是:256(8位情况下)+这个负数;

  这套存放格式,就是所谓的补码,即负数。

补码有什么用?

 利用补码,可以把减法运算,转换成加法。

例如:6-2 = 4,用补码运算如下:

    6 的表示是 0000 0110

 + -2 的补码是 1111 1110

-----------------

       (1) 0000 0100   (= 4 的补码)

 (括号中的 1,是进位,舍弃不要了。)

注意:

 如果运算结果超出了 -128~~+127 的范围,结果将是错的。

 这种现象称为“溢出”,再注意一下:进位,并不等于溢出。

因为补码的这个特性,所以,在计算机中,只是使用补码存放数据。

而原码、反码,在计算机中,都是不存在的。原码、反码的用途,仅仅是用于“笔算”。

其实,笔算的方法,并非只有“取反加一”。另外,-128,有补码,但是却没有原码反码!

所以无法用“取反加一”来求 -128 的补码。所以,大家,完全不必在原码反码 上浪费时间精力。

转载请注明,十分感谢~~

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-12-13 12:46:15  更:2021-12-13 12:46:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 4:32:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码