嵌入式-原码、补码,反码的存储

目录

一.原码

1.1简介

1.2存储规则

二.补码

2.1简介

2.2存储规则

三.反码

3.1简介

3.2存储规则


一.原码

1.1简介

    原码是一种表示带符号整数的编码方式。在原码表示中,最高位表示符号位,0表示正数,1表示负数,其余位表示数值的绝对值。例如,8位原码表示范围为-127到127。这种编码方式简单直观,易于理解和实现,但在进行数值运算时可能出现溢出和无法实现减法等问题。

1.2存储规则

    原码是计算机中用来表示带符号整数的一种编码方式。它的存储规则如下:

1. 原码由一个符号位和多个数值位组成,最高位为符号位,0表示正数,1表示负数,其余位表示数值部分。

2. 正数的原码与其二进制表示完全相同。

3. 负数的原码的数值位与其对应正数的原码相同,但符号位取反。

4. 原码的数值部分表示该整数的绝对值,与其数量级无关。

5. 原码在加减法运算中存在溢出和数值的对齐问题。

    原码的存储规则可以使计算机对正负数的加减法进行简单的处理,但在进行乘法、除法等运算时会引发一些问题,因此在计算机中一般采用补码或反码作为更为常用的表示方式。

二.补码

2.1简介

    补码是一种用于在计算机中表示有符号整数的方法。在补码表示中,最高位(最左边的位)用来表示符号位,0表示正数,1表示负数。对于正数,其补码就是其二进制表示本身。对于负数,其补码等于其绝对值的二进制表示取反后加1。通过使用补码表示,可以将有符号整数与无符号整数一样进行二进制运算,简化了计算机中整数的处理过程。补码的使用广泛应用于计算机中的算术运算和逻辑运算。

2.2存储规则

补码的存储规则可以总结如下:

1. 补码的位数与机器字长有关,通常为8位、16位、32位或64位等。比如,32位的补码就由32个比特位组成。

2. 对于正数,补码与原码相同,即最高位为0。

3. 对于负数,补码的表示方式略有不同。补码表示负数的方式是,将该负数的绝对值的二进制表示按位取反(0变1,1变0),再加上1。最高位为1表示负数。

4. 零的补码表示方式与原码的表示方式相同。

5. 补码中最高位被称为符号位,表示正负数。其他位数被称为数值位,表示数值大小。

6. 补码的加减法与无符号整数的加减法相同。在补码的加减法中,符号位的处理方式与数值位相同,即符号位也按位进行加减。

7. 补码的存储是以二进制形式存储的,可以通过直接存储补码来表示有符号整数。

补码的存储规则允许计算机在进行有符号整数运算时,使用同样的硬件电路和算法处理无符号整数和有符号整数。这种编码方式简化了运算器的设计和实现,提高了计算机的运算效率。

例如,我们要存储整数-5的补码:

1. 首先,将-5的绝对值转换成二进制。5的二进制表示为0000 0101。
2. 然后,将得到的二进制数取反,即1111 1010。
3. 最后,将取反后的结果加1,即1111 1011。这就是-5的补码,它表示负数-5。

三.反码

3.1简介

    反码是计算机中一种表示负数的方式。在反码表示法中,负数通过将其正数形式的每一位取反得到。对于一个n位的二进制数,如果最高位是1,则表示这是一个负数,需要对其余位进行取反,如果最高位是0,则表示这是一个正数,不需要进行取反。这样,反码表示法中的0有两个表示:+0(000...000)和-0(111...111)。

    反码表示法的一个特点是,它能够表示负零。正数的反码与其本身一致,而负数则需要在正数的基础上进行取反。这样,反码运算可以方便地进行加减运算,只需要将两个数的反码相加,然后再对结果取反即可。

3.2存储规则

反码是一种表示数字的编码方式,其存储规则如下:

1. 正数:正数的反码与其原码相同,即最高位为0,其余位表示数值大小。例如,+5的原码为00000101,反码也是00000101。

2. 负数:负数的反码与其原码规则有所不同。首先,最高位为1表示负数,其余位表示数值大小。其次,对于负数的反码来说,除最高位外,其余位取反。例如,-5的原码为10000101,反码为11111010。

3. 零:零的反码与其原码相同,即全为0。
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/80622.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实现按钮悬停动画

知识点与技巧 伪元素 使用伪元素来作为按钮悬停效果动画展示的元素 z-index 的使用技巧 使用z-index属性来控制按钮和伪元素的层次关系 transform、transition 复习 使用transform、transition两个属性来实现动画的展示 按钮边框动画 切换效果 核心代码 .btn.btn-border-…

Linux隐藏文件及含义

写在前面: Linux隐藏文件是非常重要的内容,创建、处理和管理隐藏文件的方法与非隐藏文件基本相同。针对常用的Linux隐藏文件,用户需要了解其作用和用途,以便于更好地使用Linux系统。 一、隐藏文件的概念 Linux系统下的隐藏文件&…

4.开放-封闭原则

这个原则其实是有两个特征,一个是说‘对于扩展是开放的(Open for extension),另一个是说‘对于更改是封闭的(Closed for modification)[ASD]。

Valine表白动态心跳源码

动态心跳源码 给前女友表白写的网页现在用不着喽 (主要功能) 记录在一起的时长QQ头像自动同步集成随机古诗词Valine留言评论(Valine是一款快速、简洁且高效的无后端评论系统) 出售源码:50(联系方式在图中…

【Effective Python】读书笔记-05类与接口

1. 让组合起来的类来实现多层结构,不用使用嵌套的内置类型 2. 让简单的接口接收函数,而不是类的实例 from collections import defaultdictcurrent {a: 1,b: 2,c: 3, }add_to_current {f: 4,e: 5, }def increment():count 0def missing():nonlocal …

CCF CSP题解:数字排序(201503-2)

链接和思路 OJ链接&#xff1a;传送门 本题仅需用一个辅助数据结构Tmp记录每1个数字的值&#xff08;value&#xff09;及其出现的次数&#xff08;cnt&#xff09;&#xff0c;然后重载运算符<并针对cnt排序输出即可。辅助数据结构Tmp定义如下&#xff1a; struct Tmp {…

《算法图解》阅读笔记

前言 问题解决技巧&#xff1a;分而治之 / 动态规划&#xff1b;贪婪算法书目&#xff1a;Grokking algorithms: an illustrated guide for programmers and other curious people中文名称&#xff1a;《算法图解——像小说一样有趣的算法入门书》 1 算法简介 二分查找&…

腾讯mini项目-【指标监控服务重构】2023-07-29

今日已办 根据导师代码评审的 comment 改进 修改命名 otelclient.otelExporterOtlpEndpoint to otelclient.endpoint禁用 TLS 加密&#xff0c;移除 otelclient.insecureMode避免命名缩写影响代码的阅读理解把两个函数&#xff08;createTraceExp和createTraceProvider&#…

VSCode 远程开发,再也不用带电脑回家了~

VS Code几乎是所有的程序员必备的工具之一&#xff0c;据说全球一般的开发者都使用过VS Code这款工具。 今天为大家介绍一下 VS Code 实现远程办公的方法。 1、概 述 通常&#xff0c;我们都是每天到工作的办公室进行办公&#xff0c;但是&#xff0c;如果下班回家&…

保密技术基础--北交大实验靶场2

由于第2、第3章的内部章节较少&#xff0c;所以我将其的体验感受一起写在这篇文章当中。 2.1 保密专用网络知识学习 这一小节也是一节的理论知识学习&#xff0c;学习过后有一个小测试&#xff0c;和第一章一样&#xff0c;学的知识和给的题目可以说是毫无关系。这一节的知识更…

shell 流程控制

流程控制 if条件判断 可以使用if来实现多路跳转&#xff0c;条件通常使用test命令 #if语句的语法if condition1then command1elif condition2 then command2else commandNfi 如果then需要和if放在同一行的话&#xff0c;使用;分隔 fi用来结束if语句&#xff0c;相当于…

Nginx部署前后端分离项目(Linux)

Nginx代理前端页面、后端接口 一、前端打包二、后端打包三、Linux部署Nginx启动、暂停、重启服务器部署文件地址&#xff1a; 一、前端打包 npm run build二、后端打包 通过Maven 使用package打包 三、Linux部署 安装Nginx 安装环境 yum -y install gcc pcre pcre-devel z…

【C语言】用冒泡排序实现my_qsort

大家好&#xff0c;我是苏貝&#xff0c;本篇博客带大家了解如何用冒泡排序实现my_qsort&#xff0c;如果你觉得我写的还不错的话&#xff0c;可以给我一个赞&#x1f44d;吗&#xff0c;感谢❤️ 目录 一. 前言二. 冒泡排序三. 4个参数3.1 第一个参数void* base3.2 第二个参数…

erlang练习题(二)

题目一 替换元组或列表中指定位置的元素&#xff0c;新元素作为参数和列表或元组一起传入函数内 解答 replaceIdx(List, Index, Val) ->replaceIdx(List, Index, Val, 1, []).replaceIdx([], _, _, _, Acc) ->lists:reverse(Acc);%% 到达替换位置的处理replaceIdx([_ …

AOSP源码中Android.mk文件中的反斜杠符号(\)的作用和使用

简介 在AOSP&#xff08;Android Open Source Project&#xff09;源码中的Android.mk文件中&#xff0c;反斜杠符号&#xff08;\&#xff09;的主要作用是将一行代码拆分成多行&#xff0c;以提高可读性并帮助组织较长的代码块。这对于定义复杂的构建规则和变量时特别有用。…

uniapp-历史搜索记录

应用场景 很多搜索场景内都能用到这个功能 大概就是用户搜索了某个关键字 然后搜索的关键字可以持久的保存下来 下次打开搜索的时候可以达到快速点击搜索的效果 实现步骤 1. 先给输入框双向绑定数据和事件 <input v-model"keyWord"> 2. 给搜索按钮绑定点…

前后端分离--Vue的入门基础版

目录 一.前后端分离 二.Vue的简介 三.Vue的入门案例 四.Vue的生命周期 一.前后端分离 前后端分离是一种软件架构模式&#xff0c;将应用程序的前端&#xff08;用户界面&#xff09;和后端&#xff08;数据处理和业务逻辑&#xff09;独立开发、独立部署。在前后端分离的架…

1、风行内容仓的增效之路 - 前言

18年初&#xff0c;公司成立内容资源管理中心&#xff08;以下按内部习惯简称内容仓&#xff09;。 18年中&#xff0c;因异地管理不便&#xff0c;我开始参与内容仓的现场管理&#xff0c;主要是提供一些管理方面的建议&#xff0c;以及部分协调工作。 19年Q4&#xff0c;我…

【计算机网络】75 张图详解:网络设备、网络地址规划、静态路由(万字长文)

75 张图详解&#xff1a;网络设备、网络地址规划、静态路由 1.网络设备1.1 交换机1.2 路由器 2.网络地址规划2.1 IP 地址2.2 分类地址2.3 子网掩码2.4 无类地址2.5 子网划分2.5.1 示例一2.5.2 示例二 2.6 超网合并 3.静态路由3.1 路由表3.2 直连路由3.3 静态路由3.4 默认路由3.…

Ansible 自动化运维工具部署主从数据库+读写分离

文章目录 Ansible 自动化运维工具部署主从数据库读写分离一、主从复制和读写分离介绍二、准备工作&#xff08;1&#xff09;节点规划&#xff08;2&#xff09;修改主机名&#xff08;3&#xff09;免密&#xff08;4&#xff09;配置IP映射&#xff08;5&#xff09;安装ansi…