软考路——码的世界

参加了软考之后,第一次接触到了计算机系统知识的内容,其主要介绍了计算机的结构组成,以及计算机的原理,都是一些很抽象的东西。

大家都知道计算机中的运算都是通过二进制进行的,但是由于计算机中只有加法运算器,所以在进行减法运算往往会出错,这也就要求我们要把减法运算转化为加法运算。于是就出现了各种码。

1、原码

原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值. 比如如果是8位二进制:

[+1]原 = 0000 0001

[-1]原 = 1000 0001

原码是人脑最容易理解和计算的表示方式.

2、 反码

反码的表示方法是:正数的反码是其本身,负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.

[+1] = [00000001]原 = [00000001]反

[-1] = [10000001]原 = [11111110]反

可见如果一个反码表示的是负数, 人脑无法直观的看出来它的数值. 通常要将其转换成原码再计算.

反码:解决负数加法运算问题,将减法运算转换为加法运算,从而简化运算规则;

3. 补码

补码的表示方法是:正数的补码就是其本身,负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)

[+1] = [00000001]原 = [00000001]反 = [00000001]补

[-1] = [10000001]原 = [11111110]反 = [11111111]补

对于负数, 补码表示方式也是人脑无法直观看出其数值的. 通常也需要转换成原码在计算其数值.

PS:另一种原码转换为补码的简便方法:数值部分自低位向高位搜索,第一个1以及其右的各位0保持不变,第一个1左边的各位按位取反。

补码:解决负数加法运算正负零问题,弥补了反码的不足。

4、移码

移码的表示方法:不管正负数,只要将其补码的符号位取反即可。

[+1] = [00000001]原 = [00000001]反 = [00000001]补=[10000001]移

[-1] = [10000001]原 = [11111110]反 = [11111111]补=[01111111]移

总结:

1、正数的原码、补码、反码均为其本身;

          2、负数(二进制)的原码、补码、反码公式:

反码 = 原码(除符号位外)每位取反

补码 = 反码 + 1

反码 = 补码  - 1

移码 = 补码符号位取反

          3、二进制数中,两数的补码之和等于两数和的补码。

时间: 2024-08-07 14:49:33

软考路——码的世界的相关文章

软考路——算法其实很简单

在参加中级软件设计师的考试中,公认的最难的一部分就是算法.可是自从老师给我们讲完算法之后,就感觉算法其实也没什么.软考中,算法被分为分治法.动态规划法.贪心算法和回溯法.那么,今天我们就来说一说这几种算法. 一.概念 1.分治法 分治法的基本思想是将一个规模为n的问题分解为k个规模较小的子问题,这些子问题相互独立且与原问题相同.递归的解这些子问题,然后将各子问题的解合并得到原问题的解. 适用范围:  1) 该问题的规模缩小到一定的程度就可以容易地解决 2) 该问题可以分解为若干个规模较小的相同问

软考--原码,反码,补码

最近在准备软考的软件设计师考试,有很多之前比较基础软件工程的知识和计算机基础的知识,昨天做真题的时候就遇到一题, 题目如下: 如果"2X"的补码是"90H",那么X的真值是( ) A.72      B.-56      C.56     D.111 题目中涉及到好几个概念,先大致理解下 一.原码,补码,反码 首先,一个数在机器中是以二进制形式表示的,也可叫做机器数,它是带有符号的,最高位存放符号,正数为0,复数为1. 真值,因为机器数带有符号,所以它的形式值并不等

软考路——封装产生的虚拟空间

曾经,还在为看不懂的代码而发愁,曾经,还在为想不通的二进制转换而苦恼,而现在,却朝着软件设计师迈进.我们在不经意间,就会发生意想不到的变化.这是进步,也是成长. 在这个过程中,我可以得到很多,也会失去些什么,不过这些经历,是我生命中宝贵的财富.我想记录下来,然后分享给大家,让我们一同进步. 1.背景 正如我们所知道的一样,任何程序在计算机中运行都需要一个运行空间,可是在实存管理技术中,常常会出现以下问题: 1)要求运行的进程所需的内存空间大于系统的内存空间,只有部分进程能够装入内存运行,而其他进

软考路——Pk适配器模式

一.适配器模式 1.概念 将一个类的接口转换成客户希望的另外一个接口.A d a p t e r 模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作. 2.对象适配器 使用对象组合,以修改的接口包装被适配者,被适配者的任何子类,都可以搭配着适配器使用. 把客户和接口绑定起来,而不是和实现绑定起来. 我们可以使用数个适配器,每一个都负责转换不同的后台类. 3.类适配器 类适配器,你需要多重继承才能实现它,这在Java和C#中是不可能的.但是当你使用多重继承语言的时候,还是可能遇到这样的需

软考路——进程与线程

一.进程 1.概念 程序是一组指令的有序集合.进程(Process)是具有一定独立功能的程序在一个数据集合上的一次运行活动.是系统进行资源分配和调度的一个独立单位. 程序本身没有任何运行的含义,只是一个静态实体.而进程则不同,它是程序在某个数据集上的执行,是一个动态实体.它因创建而产生,因调度而运行,因等待资源或事件而被处于等待状态,因完成任务而被撤消,反映了一个程序在一定的数据集上运行的全部动态过程. 2.特性 (1)结构性 进程包含程序及其相关数据结构.进程的实体包含进程控制块(PCB),程

软考之路(三)---组成原理

计算机的基本硬件系统由运算器.控制器.存储器.输入设备.输出设备5大部件组成.计算机组成原理是计算机的底层内容的学习,了解学习它,对今后解决这个问题从根本上非常轻松的理解,然而在学习这块地内容时遇到了非常多关于进制的计算.系统来回处理数据的分析,都是相当不错的.非常有意思.主要是计算的语言里面仅仅有0.1,勾勒出了这么色彩缤纷的世界,真的是太奇妙啦,让我们通过学习这些基础内容来从还有一个角度来认识计算机.同一时候思考人类的智慧的结晶多么的不可深測,算法的巧妙,虽然引入了非常多的内容都是在为了更好

软考之路(五)---编译原理 概念篇

从组成原理到编译原理,都是相互联系的,学习的知识都是在层层推进,顺利成章的,整个软考的所有的知识都可以从计算机的发展(组成原理)--->软件的开发(软件工程)--->软件的算法设计(数据结构)-->高级语言写的系统--->在计算机上识别(编译原理)--->各个系统的背后数据的支持--->(数据库)---->---网络知识的应用---->网络基础--,可以把整个所有的软考的课本给串起来,这些都是构成现在丰富世界的必不可少的条件. 当然由于机器语言由0.1组成,

我的软考之路(五)——数据结构与算法(3)之图

图跟树一样,也是非线性结构,咋看起来有点复杂,其实它很简单.树具有层次关系,上层元素可以与下一个多个元素连接,但是只能和上层的一个元素连接.在图结构中,节点间的连接是任意的,任何一个元素都可以与其他元素连接. 图相对而言很简单,我们只介绍的图的遍历和最小生成树,现在我们开始. 遍历 1.概念 从图中某一个顶点出发,访问图中的每一个结点,并要求只能访问一次,不能重复访问. 2.方法 (1)广度优先遍历 基本思想:首先访问顶点,再访问顶点的全部未访问的邻结点,再访问邻结点的所有结点即可(类似树的层次

软考之路--用文字记录这个美丽的进程

进程,百度百科对她这样进行阐述,进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动.它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元.,在小编的理解世界中,进程就是一段程序的执行过程,就好比中午要去食堂吃饭,从十一教走到中快食堂的路上的这个过程,就是进程,纯属小编的个人傻傻的理解,有不同想法的小伙伴欢迎讨论交流,这篇博文,小编主要来讲解一下进程的相关知识,如下图所示,小编会根据下图的框架,进行一一讲解,用文字记录这个美丽的进程......