C语言原码、反码和补码的详解

C语言原码、反码和补码的详解

  • 放在最前面的
  • 1、前言
          • 正数的原码、反码和补码
          • 负数的原码、反码和补码
  • 2、整数的原码
      • (2.1)原码的定义
      • (2.2)计算原码
  • 3、整数的反码
      • (3.1)反码的定义
      • (3.2)计算反码
  • 4、整数的补码
      • (4.1)补码的定义
      • (4.2)计算补码
          • (a)正数的补码
          • (b)负数补码
  • 5、原码、反码和补码的相互转换
  • END

放在最前面的

🎈 🎈 我的CSDN主页:OTWOL的主页,欢迎!!!👋🏼👋🏼
🎉🎉我的C语言初阶合集:C语言初阶合集,希望能帮到你!!!😍 😍
👋🏼🎉🎊创作不易,欢迎大家留言、点赞加收藏!!! 🥳😁😍

1、前言

  • 哈哈哈哈!关于二进制🔍、八进制🐙(看,像不像八只小爪子?)、十进制🔟(这个数字本身就像是在笑呢!)、还有十六进制🔟🔟(哎呀,是不是数错了,其实是0-F啦,开个玩笑~)的那些让人头大的事儿,别发愁啦!快来点击下面这篇既搞笑又有趣的博客,让我们一起在数字的海洋里遨游吧!🤣🚀📚
  • C语言常见进制 (二进制、八进制、十进制、十六进制)详解

  • 整数的二进制表示形式,其实有三种

原码:原码 (true form) 是一种计算机中对数字的二进制定点表示方法。
原码表示法 在数值前面增加了 一位符号位(即最高位为符号位):正数该位为 0,负数该位为 1(0有两种表示:+0 和 -0),其余位表示数值的大小。

反码:反码通常是用来由原码求补码或者由补码求原码的过渡码。

补码:计算机中的有符号数有三种表示方法,即原码、反码和补码。
三种表示方法均有符号位和数值位两部分,
符号位 都是用 0表示“正”,用 1表示“负”,而数值位,三种表示方法各不相同。
在计算机系统中,数值一律用补码来表示和存储。
原因在于,使用补码,可以将符号位和数值域统一处理;
同时,加法和减法也可以统一处理。

正数的原码、反码和补码

正数的原码、反码和补码都是相等的

  • 如图:
负数的原码、反码和补码

哈哈哈哈!关于负数的原码📜、反码🔄(就像是在做反转魔术一样)、还有补码🧩(补上缺失的部分,完美!)的那些让人好奇的小知识,别着急走开!
请继续往下看,保证让你大开眼界!👀✨📚

2、整数的原码

(2.1)原码的定义

原码 是计算机机器数中最简单的一种形式,
数值位 就是真值的绝对值,
符号位 为“0”时表示 正数,符号位为“1”时表示 负数
原码又称 带符号的绝对值。
原码的整数中“0”的表示形式各有2种,“+0”和“-0”不一样,
以 8位机器数为例,
整数的“+0”原码为 0000 0000;
整数的“-0”原码为 1000 0000;

(2.2)计算原码

例如,我们用 8位二进制表示一个数,
+11 的原码为 0000 1011,
-11 的原码是 1000 1011

计算机中所有的数均用0,1编码表示,数字的正负号也不例外,
如果一个机器数字长是n位的话,约定最左边一位用作符号位,其余n-1位用于表示数值。
在符号位上用 “0” 表示正数;用 “1” 表示负数。
数值位表示真值的绝对值。凡不足 n-1位的,
整数则在最高位左边加零以补足 n-1位。
这种计算机的编码形式叫做 原码。记作X=[X]原。
例如:
在字长 n=8 的机器内:
[+1011]原 = 0000 1011
[-1011]原 = 1000 1011

3、整数的反码

(3.1)反码的定义

反码通常是用来由 原码求补码 或者由 补码求原码 的过渡码。
反码 表示法规定:
正数 的 反码 与其 原码 相同;
负数 的 反码 是对 符号位保持为1, 其余位 取反

(3.2)计算反码

对于 二进制原码 10010 求 反码: 如图:

机器数的反码的整数和小数中“0”的表示形式各有2种,
“+0”和“-0”不一样,
以 8位机器数为例,
整数的“+0”原码为0000 0000,
反码为0000 0000;
整数的“-0”原码为1000 0000,
反码为1111 1111;
反码跟原码是正数时,一样;
负数时,反码就是原码符号位除外,其他位按位取反。

4、整数的补码

(4.1)补码的定义

补码,就是计算机里用来表示负数的巧妙方法🧠,
正数不变,
负数则是它的反码加1️⃣,
超实用,超有趣😎!

(4.2)计算补码

(a)正数的补码

正数 的补码就是 其 原码

(b)负数补码

在计算负数 的补码时,在其 反码的末位 加1。
例子:
1011 0100 (原码)
1100 1011 (反码)符号位不变,数值位取反,
则其补码为
1100 1011 + 1 = 1100 1100 (补码)

5、原码、反码和补码的相互转换

记住下面的规则 和 牢记 原码、反码和补码的定义 。

正数 的原码、反码、补码相同。


负数 的反码:符号位不变,原码的数值取反。
负数 的补码:符号位不变,原码转换成反码,反码末位加1。
负数 的原码 转换为 反码:符号位不变,数值位分别“按位取反”。
负数 的反码 转换为 原码:符号位不变,数值位分别“按位取反”。

负数 的原码 转换为 补码:符号位不变,数值位按位取反,末位再加1。
负数 的补码 转换为 原码:符号位不变,数值位按位取反,末位再加1;
或者 符号位不变,先减 1,再按位取反(原码转换为补码的逆运算)

END

亲爱的读者,本文结束咯😉。
对内容有看法、建议或疑问不?评论区等你留言哦🤗💭

每天都在学习的路上!
On The Way Of Learning

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

知识课堂——高匿ip在不同业务中的重要作用

大家好!今天我们来看看高匿ip在不同业务中都能起到什么样的重要作用。第一个会用到的地方就是网络数据采集,也被称为网络爬虫,在是许多企业和机构获取大量数据的重要手段。例如市场调研公司帮助企业制定市场策略就需要收集各个行业的产品价格…

【青牛科技】GC8548替代LV8548/ONSEMI在摇头机、舞台灯、打印机和白色家电等产品上的应用分析

引言 在现代电子设备中,控制芯片的选择对产品的性能和可靠性至关重要。摇头机、舞台灯、打印机和白色家电等领域对芯片的要求日益增加,传统上多采用LV8548/ONSEMI等国际品牌的芯片。然而,随着国内半导体技术的不断进步,芯麦GC854…

【C/C++】字符/字符串函数(0)——由ctype.h提供

零.导言 众所周知,C语言的字符有许多不同的类型,如:数字,字母,标点符号等等等等。 今天,我就给大家讲解一下用于实现字符分类的函数——字符分类函数。 一.什么是字符分类函数? 即实现字符分类的…

专业网页设计服务重要是什么

当在搜索引擎中键入“网页设计”,您将获得超过2000万个相关结果。在如此众多的网站制作公司中,应该如何做出明智的选择呢?首先,让我们深入探讨一下网页设计的重要性。网站设计需要综合各种不同领域的专业知识,它是一个…

【CanMV K230】windows部署AICube,训练模型

【CanMV K230】windows部署AICube,训练模型 dotnet sdk的下载链接配置环境 AI_Cube安装训练AI_Cube安装模型训练 在开发板上运行模型 B站视频链接:《K230 实战》windows系统下使用AI_Cube,训练模型 AI Cube 是由嘉楠科技开发的一款通用视觉 AI 计算平台&…

力扣每日一题 超级饮料的最大强化能量 动态规划(dp)

来自未来的体育科学家给你两个整数数组 energyDrinkA 和 energyDrinkB,数组长度都等于 n。这两个数组分别代表 A、B 两种不同能量饮料每小时所能提供的强化能量。 你需要每小时饮用一种能量饮料来 最大化 你的总强化能量。然而,如果从一种能量饮料切换到…

RK3568平台开发系列讲解(字符设备驱动篇)注册字符设备

🚀返回专栏总目录 文章目录 一、字符设备初始化二、字符设备的注册和注销沉淀、分享、成长,让自己和他人都能有所收获!😄 📢注册字符设备可以分为两个步骤: 字符设备初始化字符设备的添加一、字符设备初始化 字符设备初始化所用到的函数为 cdev_init(…),在对该函数讲…

在 Scnet 上微调 Stable Diffusion 3 模型

1 AI 算力反馈 1.1 运行的商品名称 我运行的商品为 Stable Diffusion 3 文本到图像高质量生成AI绘画推理服务,运行的环境为 异构加速卡AI 64G。具体创建流程如下: 1.1.1 购买模型服务 首先购买一下模型服务,这样我们就不需要再从 Hugging…

ffmpeg命令——从wireshark包中的rtp包中分离h264

ffmpeg命令——从wireshark包中的rtp包中分离h264 过滤 RTP打开wireshark的RTP 播放器选中流并导出荷载使用 ffmpeg 命令行分离出 h264 过滤 RTP 打开wireshark的RTP 播放器 选中流并导出荷载 使用 ffmpeg 命令行分离出 h264 ffmpeg -i test.raw -vcodec copy -an -f h264 tes…

机器学习(二)——线性回归模型、多分类学习(附核心思想和Python实现源码)

目录 关于1. 基本形式2. 线性回归2.1 单变量线性回归2.2 多元线性回归2.2 对数线性回归 3. 对数几率回归4. 线性判别分析5. 多分类学习5.1 拆分策略 6. 类别不平衡问题X 案例代码X.1 源码X.2 数据集(糖尿病数据集)X.3 模型效果 关于 本文是基于西瓜书&a…

【机器学习】22. 聚类cluster - K-means

聚类cluster - K-means 1. 定义2. 测量数据点之间的相似性3. Centroid and medoid4. Cluster之间距离的测量方式5. 聚类算法的类别6. K-mean7. 如何解决中心初始化带来的影响8. K-means问题:处理空集群9. 离群值的问题10. Bisecting K-means(二分K-means…

【python_pandas_将列表按照某几列进行分组,再求和,按照原列表的字段顺序返回】

说明: 1、按照[“行描述”,”‘公司代码’, ‘科目代码’, ‘预算项目代码’] 进行分组。 2、对“贷方”列进行求和。 3、最后按照之前的表头顺序进行排序,返回结果列表。 #-*- coding:utf-8-*import pandas as pd def consolidate_salary_provisions(l…

【Vue框架】基础语法练习(1)

其实更多知识点已经在Vue.js官网十分清楚了,大家也可以去官网进行更细节的学习 https://cn.vuejs.org/ 说明:目前最新是Vue3版本的,但是Vue2已经深得人心,所以就是可以支持二者合用。它们最大的区别就是Vue3是组合式API&#xf…

公司如何防止员工泄密?十佳措施拒绝泄密,公司防泄密刻不容缓! (2024最强科普)

如何有效防止员工泄露机密? 作为公司的经营者,您是否意识到了商业秘密的重要性?您是否已经知道应该采取什么样的措施才能保护好自己的商业秘密? 员工的泄密行为不仅可能造成重大的经济损失,还会对企业的声誉造成严重…

[大模型]视频生成-Sora简析

参考资料: Sora技术报告https://openai.com/index/video-generation-models-as-world-simulators/4分钟详细揭密!Sora视频生成模型原理https://www.bilibili.com/video/BV1AW421K7Ut 一、概述 相较于Gen-2、Stable Diffusion、Pika等生成模型的前辈&am…

linux中级(防火墙firewalld)

一。firewalld与iptables区别1.firewalld可以动态修改单条规则,不需要像iptables那样,修改规则后必须全部刷新才可生效。firewalld默认动作是拒绝,则每个服务都需要去设置才能放行,而iptables里默认是每个服务是允许,需…

【C/C++】memcpy函数的使用

零.导言 当我们学习了strcpy和strncpy函数后,也许会疑惑整形数组要如何拷贝,而今天我将讲解的memcpy函数便可以拷贝整形数组。 一.memcpy函数的使用 memcpy函数是一种C语言内存函数,可以按字节拷贝任意类型的数组,比如整形数组。 …

软件测试用例设计:从功能测试到边界值分析

功能测试介绍 功能测试是软件测试的一种重要方式,通过对软件的功能进行测试,来验证软件是否满足需求规格说明书中的各项功能要求。例如,对于一个简单的计算器软件,功能测试的用例可能包括加减乘除等基本运算,以及各种特…

[论文阅读]BERT-based Lexical Substitution

BERT-based Lexical Substitution 基于BERT的词汇替换 ACL2019 BERT-based Lexical Substitution - ACL Anthology 以前关于词汇替换的研究倾向于通过从词汇资源(例如 WordNet)中找到目标词的同义词来获得替代候选词,然后根据其上下文对候…

【Java SE 】特殊报错机制 ---> 异常 !

🔥博客主页🔥:【 坊钰_CSDN博客 】 欢迎各位点赞👍评论✍收藏⭐ 目录 1. 异常概念 1.1 算术异常 1.2. 空指针异常 1.3 数组越界异常 2. 异常的分类 2.1 编译时产生的异常 2.2 运行时产生的异常 3. 如何处理异常 3.1 异常…