【信息学奥赛】CSP-J/S初赛05 计算机原码、补码和反码

本专栏👉CSP-J/S初赛内容主要讲解信息学奥赛的初赛内容,包含计算机基础、初赛常考的C++程序和算法以及数据结构,并收集了近年真题以作参考。

如果你想参加信息学奥赛,但之前没有太多C++基础,请点击👉专栏:C++语法入门,如果你C++语法基础已经炉火纯青,则可以进阶算法👉专栏:算法知识和数据结构👉专栏:数据结构啦

目录

📕带符号二进制数的表示方法

🧠原码表示法

🧠反码表示法

🧠补码表示法

📕定点数和浮点数

♥定点数(Fixed-Point Number)

♥浮点数(Floating-Point Number)


带符号二进制数的表示方法

带符号二进制数用最高位的一位数来表示符号:0表示正,1表示负。

符号位 二进制数位数

数值范围

十六进制范围表示法

8位 二进制数

-128 ~ +127

80H~7FH

16位 二进制数

-32768 ~ +32767

8000H~7FFFH

32位 二进制数

-2147483648 ~+2147483647

80000000H~7FFFFFFFH

注:符号位的表示:最常用的表示方法有原码、反码和补码

原码表示法

一个机器数x由符号位和有效数值两部分组成,设符号位为x0,x真值的绝对值|x|=x_{0}x_{1}x_{2}x_{3}..x_{n},则 x的机器数原码可表示为:

[x]原= x_{0}x_{1}x_{2}x_{3}..x_{n},当 x>=0时,x_{0}=0,当x<0时,x_{0}=1。

例如:已知x1=-1011B,x2= +1001B,则 x1,x2有原码分别是

[x1]原=11011B,[x2]原=01001B

规律:正数的原码是它本身,负数的原码是取绝对值后,在最高位(左端)补“1”

反码表示法

一个负数的原码符号位不变,其余各位按位取反就是机器数的反码表示法

正数的反码与原码相同。

按位取反的意思是该位上是1的,就变成0,该位上是0的就变成 1。即 1=0,0=1

例:x1 = −1011B,x2 = +1001B ,求[x1]反和[x2]反

解:[x1]反=10100B,[x2]反 =01001B

补码表示法

首先分析两个十进制数的运算:79-38=41,79+62=141

如果使用两位数的运算器,做79+62时,多余的100因为超出了运算器两位数的范围而

自动丢弃,这样在做79-38的减法时,用79+62的加法同样可以得到正确结果。

是指一个计量系统的测量范围,其大小以计量进位制的基数为底数,位数为指数的幂。

如两位十进制数的测量范围是 1—99,溢出量是100,模就是10^{2}=100,上述运算称为模运算,可以写作:79+(-38)=79+62(mod 100)

进一步写为-38=62,此时就说–38的补法(对模 100而言)是 62。计算机是一种有限

字长的数字系统,因此它的运算都是有模运算,超出模的运算结果都将溢出。n位二进制的

模是2^{n}

  • 当x>=0时,补码就是其本身。例如[+1]=[00000001]原=[00000001]反=[00000001]补
  • 当x<0时,在其原码的基础上,符号位不变,其余各位取反,最后再+1(即在反码的基础上+1)。例如[-1]=[10000001]原=[11111110]反=[11111111]补

定点数和浮点数

定点数(Fixed-Point Number)

计算机处理的数据不仅有符号,而且大量的数据带有小数,小数点不占有二进制一位而是隐含在机器数里某个固定位置上。通常采取两种简单的约定:一种是约定所有机器数的小数的小数点位置隐含在机器数的最低位之后,叫定点纯整机器数,简称定点整数。另一种约定所有机器数的小数点隐含在符号位之后、有效部分最高位之前,叫定点纯小数机器数,简称定点小数。无论是定点整数,还是定点小数,都可以有原码、反码和补码三种形式。

浮点数(Floating-Point Number)

计算机多数情况下采作浮点数表示数值,它与科学计数法相似,把一个二进制数通过移动小数点位置表示成阶码和尾数两部分:N = 2^{E} * S

其中:E--N的阶码(Expoent),是有符号的整数。

  S--N的尾数(Mantissa),是数值的有效数字部分,一般规定取二进制定点纯小数形式。

例如:1011101B=2^{+7}*0.1011101,101.1101B=2^{+3}*0.1011101,0.01011101B=2^{-1}*0.1011101

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

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

相关文章

IPython交互式Shell的高级功能:探索Python交互式编程的边界

&#x1f680; IPython交互式Shell的高级功能&#xff1a;探索Python交互式编程的边界 IPython是一个强大的Python交互式解释器&#xff0c;它提供了许多高级功能&#xff0c;使得Python编程更加高效和有趣。这些功能包括但不限于改进的交互式Shell、Jupyter笔记本、魔术命令、…

线性代数大题细节。

4.4 方程组解的结构&#xff08;二&#xff09;_哔哩哔哩_bilibili

c++将一个复杂的结构体_保存成二进制文件并读取

在 C 中&#xff0c;可以将复杂的结构体保存到二进制文件中&#xff0c;并从二进制文件中读取它。为了实现这一点&#xff0c;你可以使用文件流库 <fstream>。以下是一个示例&#xff0c;展示如何将一个复杂的结构体保存到二进制文件中&#xff0c;并从二进制文件中读取它…

【高中数学/三角函数】已知:实数a,b,c满足a+b+c=0,且a^2+b^2+c^2=1 求:a的最大值?

【问题】 已知&#xff1a;实数a,b,c满足abc0,且a^2b^2c^21 求&#xff1a;a的最大值&#xff1f; 【问题来源】 https://www.ixigua.com/7289764285772497448?logTag0d228277f3a8e049ab6d 【解答】 解&#xff1a;由abc0可得c-(ab) 代入a^2b^2c^21得a^2b^2(ab)^21 又…

深入MOJO编程语言的单元测试世界

引言 在软件开发的历程中&#xff0c;单元测试扮演着至关重要的角色。单元测试不仅帮助开发者确保代码的每个部分都按预期工作&#xff0c;而且也是代码质量和维护性的关键保障。本文将引导读者了解如何在MOJO这一假想编程语言中编写单元测试&#xff0c;尽管MOJO并非真实存在…

Docker在windows上使用vscode远程连接容器

目录 一、提前准备&#xff1a; 二、vscode连接docker容器 三、构建好的docker容器直接连接vscode 四、Windows下的可视化出linux的ui界面 在日常的开发中&#xff0c;不想windows和linux两个系统之间来回切换&#xff0c;笔者最近打算所有的环境均在一个系统上完成。为了交…

Nosql期末复习

mongodb基本常用命令&#xff08;只要掌握所有实验内容就没问题&#xff09; 上机必考&#xff0c;笔试试卷可能考&#xff1a; 1.1 数据库的操作 1.1.1 选择和创建数据库 &#xff08;1&#xff09;use dbname 如果数据库不存在则自动创建&#xff0c;例如&#xff0c;以下…

学习无人机飞行技术,有哪些就业方向?

随着无人机技术的不断进步和应用领域的拓展&#xff0c;研发创新人才的需求也将不断增加&#xff0c;那就业前景还是很广阔的。学习无人机飞行技术后&#xff0c;有以下多个就业方向可供选择&#xff1a; 1. 无人机操作员&#xff1a; - 负责操控和监控无人机飞行&#xff0c;…

基于索尼基于索尼Spresense的眼睛跟随平台中两个模型的对比

1.模型一(现在使用的) 这个模型是一个简单的神经网络&#xff0c;由三个主要组件组成&#xff1a;输入层、一个全连接层&#xff08;Affine层&#xff09;、一个Sigmoid激活函数层和一个Binary Cross Entropy损失层。 以下是每个组件的说明&#xff1a; Input 层&#xff1a;这…

ubuntu 更换软件源

ubuntu 更换软件源 在Ubuntu 20.04 LTS中更换软件源可以通过图形界面或命令行进行。更换软件源通常是为了加快软件包的下载速度或解决软件源不可用的问题。这里我将分别说明如何通过图形界面和命令行更换软件源。 通过图形界面更换软件源&#xff1a; 打开“软件和更新”设置…

【LeetCode】验证回文串

目录 一、题目二、解法完整代码 一、题目 如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后&#xff0c;短语正着读和反着读都一样。则可以认为该短语是一个 回文串 。 字母和数字都属于字母数字字符。 给你一个字符串 s&#xff0c;如果它是 回文串 &…

问题集锦1

01.inner中使用JwtTokenUtil.getUserCode() 前端调用上传&#xff08;java&#xff09;&#xff0c;上传使用加购 Overridepublic Boolean insertShoppingCart(InsertShoppingCartParamsDto dto) {// 通过userCode,itemCode和supplierCode来判断当前加购人添加到购物车的商品是…

51单片机第23步_定时器1工作在模式0(13位定时器)

重点学习51单片机定时器1工作在模式0的应用。 在51单片机中&#xff0c;定时器1工作在模式0&#xff0c;它和定时器0一样&#xff0c;TL1占低5位&#xff0c;TH1占高8位&#xff0c;合计13位&#xff0c;也是向上计数。 1、定时器1工作在模式0 1)、定时器1工作在模式0的框图…

查看Oracle是哪个Oracle_home 下启动的

[rootrac1 ~]# ps -ef|grep smon root 413 24903 0 22:30 pts/0 00:00:00 grep --colorauto smon root 27165 1 0 22:11 ? 00:00:09 /u01/app/19.0.0/grid/bin/osysmond.bin grid 27784 1 0 22:12 ? 00:00:00 asm_smon_ASM1 oracl…

基础不牢地动山摇:JS逆向攻防对抗核心的博弈点在于对JS最基础部分的深刻理解和灵活应用——干货语法大全

基础不牢地动山摇&#xff1a;JS逆向攻防对抗核心的博弈点在于对JS最基础部分的深刻理解和灵活应用——语法大全 JS逆向攻防对抗核心的博弈点在于对JS最基础部分的深刻理解和灵活应用&#xff0c;偏门基础用法语法知道的越多&#xff0c;理解的越深刻&#xff0c;运用的越灵活…

前端知识点

HTML、CSS 相关 1、 BFC 1、BFC 是什么&#xff1f; BFC&#xff08;Block Formatting Context&#xff09; 格式化上下文&#xff1b; 指一个独立的渲染区域&#xff0c;或者说是一个隔离的独立容器&#xff1b;可以理解为一个独立的封闭空间。无论如何不会影响到它的外面 …

贪心+后缀和,CF 1903C - Theofanis‘ Nightmare

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 1903C - Theofanis Nightmare 二、解题报告 1、思路分析 我们任意一种分组其实都是若干个后缀和相加 比如我们分成了三组&#xff0c;第一组的数被加了一次&#xff0c;第二组的数被加了两次&#xff0c;第…

JDK动态代理-AOP编程

AOPTest.java&#xff0c;相当于main函数&#xff0c;经过代理工厂出来的Hello类对象就不一样了&#xff0c;这是Proxy.newProxyInstance返回的对象&#xff0c;会hello.addUser会替换为invoke函数&#xff0c;比如这里的hello.addUser("sun", "13434");会…

ceres和eigen的cmake配置

这里的eigen是用下面安装的&#xff0c; sudo apt-get install libeigen3-devceres是编译后&#xff0c;安装到系统目录下的 sudo make install这样cmake会自动到系统下去寻找eigen, ceres相关的cmake文件&#xff0c; 包含ceres和eigen引用的源文件&#xff0c;需要在CMake…

Web3 ETF 的软件开发框架

Web3 ETF 的软件开发框架主要包含以下几个方面&#xff0c;需要说明的是&#xff0c;Web3 ETF 仍处于早期发展阶段&#xff0c;相关技术和标准尚未成熟。在开发 Web3 ETF 时&#xff0c;需要谨慎评估风险&#xff0c;并做好安全防范措施。北京木奇移动技术有限公司&#xff0c;…