【计算机基础】整数的补码表示及负整数的左右移

2023-05-16

作者:LogM
本文原载于 https://segmentfault.com/u/logm/articles ,不允许转载~

文章难免有错误之处,请在原文评论处指出~

1. 补码的表示形式

计算机中整数用补码表示。

举例:假设数值类型为char型(8位)

十进制:8
原码:0000 1000
补码:0000 1000(正数的补码等于原码)
十进制:-8
原码:1000 1000
反码:1111 0111
补码:1111 1000(负数的补码等于反码加1)

2. 为什么用补码表示

用补码表示是为了使计算机的整数加法能用同一种电路完成,无论是正整数还是负整数。

建议阅读: LeetCode习题:位运算实现整数加法

3. 补码的本质

以-8为例:

十进制:-8
补码:1111 1000

可以发现,-8的补码与248的二进制表示竟然相同。

十进制:248
二进制:1111 1000

这是巧合吗?

char型共8位,所以有:

$$ 2^8 + (-8) = 248 $$

可能我解释不够清楚,小伙伴们可以自己用谷歌检索答案。

4. 负数的左右移

  • 左移:不断在右边补0,符号位会被移出,全移完是0
  • 右移:不断在左边补1,全移完是-1的补码
  • 观察可知:负数的右移不再严格对应整数除法的除2
十进制:-8
补码:1111 1000
左移后的补码:1111 0000(十进制-16)
右移后的补码:1111 1100(十进制-4)

十进制:-5
补码:1111 1011
左移后的补码:1111 0110(十进制-10)
右移后的补码:1111 1101(十进制-3,而整数除法的除2结果为-2,两者不对应)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【计算机基础】整数的补码表示及负整数的左右移 的相关文章

  • Cookie 和 Session 归纳

    首先介绍下基本概念 cookie是服务器通知客户端让其保存健值对的一种形式 客户端有了cookie之后 每次请求就会发送给服务器 每个cookie最大是4kb 服务器创建cookie 1Cookie cookie new Cookie 创建
  • shell I/O重定向

    shell重定向 lt 改变标准输入 program lt file 可将program 的标准输入改为file tr d r lt dos file txt 以 gt 改变标准输出 program gt file 可将program的标准
  • 补码的除法运算

    补码的除法运算是将两个数都使用补码的形式来进行计算 和原码的除法相比 补码的除法运算中被除数 除数以及余数都采用双符号位的形式参与计算 最后得到的余数符号位就代表着最终结果的符号位 加减交替法 题目 假设机器字长为5位 x 0 1000 y
  • 编程语言发展简史

    编程语言发展简史 一 编程的起源 二 第一代计算机语言 机器语言 三 第二代计算机语言 汇编语言 四 第三代计算机语言 高级语言 2022年4月 TIOBE编程排行榜 https www tiobe com tiobe index 高级语言
  • 计算机网络笔记(四):Socket编程

    文章目录 前言 Socket API 函数 WinSock为例 数据解析 网络字节顺序 解析服务器IP地址 端口号 解析协议号 TCP UDP客户端软件流程 服务器软件设计 前言 几种典型的应用编程接口 Berkeley UNIX操作系统定
  • 我所不知道的TCP Socket编程(五)-交换数据、套接字读写操作

    五 交换数据 已经建立了服务器和客户端的链接 现在需要让它们进行数据交换 你可以将TCP连接想象成一串连接了本地套接字和远程套接字的管子 我们可以沿着这个管子发送和接受数据 实际中 数据被编码为TCP IP分组 经过多台路由器和主机 抵达终
  • LRU 最近最少使用算法

    LRU 最近最少使用算法 设计LRU Cash 数据结构 设计方法 代码实现 总结 百度百科 LRU是Least Recently Used的缩写 即最近最少使用 是一种常用的页面置换算法 选择最近最久未使用的页面予以淘汰 该算法赋予每个页
  • 负数为什么要用补码来表示?

    上篇文章讲了 负数在计算机中是怎么存储的 看完之后 应该对原码 反码 补码有了基本的了解了 今天 我们深入探讨一下 为什么计算机中要用补码来表示负数 首先 我们应该清楚 原码是方便给人看的 看到一个数的原码 我们就能根据符号位和后边的二进制
  • 关系代数之连接 (Join)和除(Division)

    关系代数之连接 Join 和除 Division 数据库技术中这两个概念 对初学者而言 理解比较困难 本文对此进行深入浅出的解释 连接 Join 联接 定义 从两个关系的笛卡尔积中选取属性间满足一定条件的元组 记作 其中A和B分别为R和S上
  • 如何最高效实现手机~电脑端文件传输?

    平常使用电脑办公的时候 经常会有把手机上的文件传到电脑或把电脑上的文件分发给局域网 内网 的各个伙伴的情况 通常我们会选择使用QQ或微信的文件传输功能来实现 但是当文件比较大 比较多时 就无法发送了 再者每次通过文件助手来发送文件时 其本质
  • 计算机基础——Word 2010

    天软备考交流群 365218976 1 Office应用程序的启动与退出 1 1 Office程序启动 1 2 Office程序退出 2 Word窗口组成 2 1 标题栏 2 1 1 快速访问工具栏 2 2 选项卡 2 3 文档编辑区 2
  • 【数学公式】Mathpix和MathType等等

    MathML MathML指 数学标记语言 是XML语言的一个子集 用来在web网页 甚至部分软件中显示数学公式 简言之 就是使用特殊的类似HTML的标记在网页中显示数学公式 MathType公式编辑器 MathType是一个强大的数学公式
  • Redfish协议测试工具–Postman

    1 工具和资料获取 2 简单使用说明 1 GET类举例 2 PATCH类举例 3 常见命令 1 工具和资料获取 Postman工具获取 服务器Redfish接口说明文档 使用前必读接口文档中 适用的产品 查看自己的服务器是否支持此协议 2
  • 一个栈的入栈序列是 a,b,c,d,e,则栈的不可能的输出序列是( ) 。

    一个栈的入栈序列是 a b c d e 则栈的不可能的输出序列是 a edcba b decbac dceab d abcde 堆栈讲究先进后出 后进先出 选项1是abcde先入栈 然后依次出栈 正好是edcba 选项2是abcd先依次入栈
  • Linux操作系统与Shell编程

    Linux是自由 开源的操作系统 安装在计算机的硬件之上 是用来操作计算机硬件和软件资源的系统软件 一般应用于专业的web服务器上 具有以下特性 Linux注重系统的安全性 对文件访问权限有严格设定 最高权限账户为root用户 可以操作一切
  • 字节和比特简单介绍

    字节 byte 字节为Byte 多数用B表示 字节为计算机中数据处理的基本单位 比特 bit 又称位 表示二进制位 为计算内部数据存储的最小单位 关系 1Byte 8bit 其他单位 1B Byte 字节 8bit 1KB Kilobyte
  • arm的多级流水线技术和和存储管理单元mmu

    流水线概念 流水线的概念与原理 处理器按照一系列步骤来执行每一条指令 典型的步骤如下 1 从存储器读取指令 fetch 2 译码以鉴别它属于哪一条指令 decode 3 从指令中提取指令的操作数 这些操作数往往存在于寄存器reg中 4 将操
  • ip地址查询到网络地址和广播地址

    借鉴 维基百科 分类网络 百度百科 IP地址 维基百科 IP地址 名词解释 IP地址 互联网协议地址 英语 Internet Protocol Address 又译为网际协议地址 缩写为IP地址 英语 IP Address 是分配给网络上使
  • 笔记总结备份

    目录 文章目录 目录 前言 版本控制 常用git 命令 操作系统 系统 机器数 时间管理 早期的 Linux 时间系统 中断 内存管理 内存分区 malloc申请一块内存的背后原理 RTOS 系统栈和协议栈 寄存器 磁盘调度算法 虚拟内存
  • 计算机基础:网络基础

    一 网线制作 1 制作所需要工具 网线 网线制作标准 2 水晶头使用 3 网线钳使用 4 视频教学 网线制作 二 集线器 交换机介绍 1 OSI七层模型 Open System Interconnect 即开放系统互连参考模型 是由 ISO

随机推荐

  • vue 自定义全屏组件

    1 FullScreen vue lt template gt lt span class 61 34 full screen 34 64 click 61 34 toggleFullScreen 34 gt lt span gt lt t
  • 企业微信小程序开发者登录结果不对问题

    1 调试 微信开发工具调试企业微信小程序 下载企微插件 设置 gt 扩展设置 gt 模拟器插件 gt 企业微信小程序模拟器 更改运行模式 选择企业微信小程序模式 2 账号 由于微信开发工具只能使用微信扫码登录 xff0c 所以必须使用登录微
  • python提取pdf表格数据并保存到excel(从0到1)

    win11安装python python org 下载安装包 xff08 64位操作系统 xff0c 所以选了3 7 4 windows x86 64 executable installer下载并安装 xff09 win 43 r 打开c
  • 0 Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by se

    nodejs连接mysql8 0 32版本报错 xff1a 0 Error ER NOT SUPPORTED AUTH MODE Client does not support authentication protocol request
  • git基本命令

    1 克隆服务器上的项目 git clone http 2 设置Git git config global user name 34 your username 34 git config global user email your ema
  • 推荐WPF的好书

    WPF好书榜 注 xff1a 以前发过一篇博文 WPF技术书籍之个人排行榜 xff0c 时隔大半年 xff0c 我又看了一些 xff0c 现向大家推荐一下其中的好书 这几本书我从头到尾都看过 xff0c 其中的示例也都一一运行分析过 xff
  • angularjs设置请求头信息

    本文部分转自 xff1a http blog csdn net magiclr article details 49643277 最近开发中遇到一个问题 xff0c 需要在模块A发出的请求头信息中添加token属性 如图所示 xff1a 简
  • angularjs 正则判断用户输入的内容只能是数字或者字母

    lt input span class hljs keyword class span 61 span class hljs string 34 form control 34 span placeholder 61 span class
  • echarts 力导向图

    首先放上大佬文章链接 xff1a http blog csdn net u010430471 article details 52955131 https www cnblogs com koala2016 archive 2016 12
  • echarts力导向图区分鼠标点击事件与拖拽事件(angularjs)

    使用echarts的力导向图做了一个知识图谱 xff0c 要求点击节点的时候 xff0c 把节点的数据作为关键词搜索 知识图谱 xff0c 以前没做过 xff0c 也不知道用什么好 xff0c 百度了一下看到有人说用echarts可以做 x
  • 2018前端笔试面试题整理

    最近好几个前端的朋友都在换工作 xff0c 根据她们的面试经验整理了一些前端笔试面试题 毕竟人少 xff0c 面的公司也少 xff0c 所以并不全面 开放性题目 xff1a 1 你在现在的团队处于什么样的角色 xff0c 起到了什么明显的作
  • docker容器网络

    在安装docker时 xff0c 会自动在host主机上创建三个网络 xff0c 用docker network ls可以进行查看 xff1a docker network ls NETWORK ID NAME DRIVER SCOPE b
  • IOS开发入门(11)-导航控制器(1)

    IOS开发入门 xff08 11 xff09 导航控制器I xff1a 层级结构和标签 前言 xff1a xff08 直接从书上抄的 xff09 大多数应用程序是由主视图导出多个屏幕 xff0c 并且通常情况下实现屏幕切换的方法还不止一种
  • IOS开发入门(12)-表视图I:基础知识

    IOS开发入门 xff08 12 xff09 表视图I xff1a 基础知识 在前面几部分中 xff0c 主屏幕只能展示一个汽车对象的信息 而在实际iOS中 xff0c 一次显示多条数据并实现滚动查看是十分常见的 xff0c 例如通讯录 音
  • C语言基础专题 - 头文件引用

    C语言基础专题 头文件引用 jcLee的个人博客 xff1a https blog csdn net qq 28550263 spm 61 1001 2101 3001 5343 邮箱 xff1a 291148484 64 163 com
  • Vue3 配置代理和使用全局axios请求数据

    更详细请参考 xff1a https blog csdn net qq 28550263 article details 120633610 vue3中配置全局代理和使用axios向服务器请求数据 main ts span class to
  • ros(13):ros找不到包报错及解决办法--Config.cmake

    目录 一 基础包 1 1 rospy包 1 2 tf包 1 3 grid map包 1 4 serial 二 专有包 2 1 dynamic reconfigure包 2 2 rosparam handler包 2 3 qt build包
  • 使用Java实现高效的字符串匹配算法

    摘要 xff1a 字符串匹配是计算机领域中的一个重要问题 xff0c 有着广泛的应用场景 在本篇博客文章中 xff0c 我们将介绍几种高效的字符串匹配算法 xff0c 并给出使用Java语言实现的代码示例 xff0c 希望能对读者理解和应用
  • WebDAV是什么

    WebDAV学习及使用 WebDAV是什么WebDEV怎么用各个设备连接1 Window2 MAC WebDAV是什么 基于Web的分布式编写和版本控制 xff08 WebDAV xff09 是超文本传输协议 xff08 HTTP xff0
  • 【计算机基础】整数的补码表示及负整数的左右移

    作者 xff1a LogM 本文原载于 https segmentfault com u logm articles xff0c 不允许转载 文章难免有错误之处 xff0c 请在原文评论处指出 1 补码的表示形式 计算机中整数用补码表示 举