文档章节

计算机体系结构(二)——码制

白志华
 白志华
发布于 2015/10/18 10:56
字数 679
阅读 0
收藏 0
点赞 0
评论 0

    现在很多程序员,只是会用计算机编程,但是许多基础的知识却很薄弱。今天就跟大家说说码制的问题。计算机对数据做的读取、传输、运算、显示等操作,都离不开码制。常见的编码方式有:原码、反码、补码、移码、BCD码。我们一一说道。

     【原码】
    表示:最高位为符号位(0表正,1表负),其余各位为数的绝对值。
    举例:   [+11]  =00001011  。   [-11]  = 10001011 。
    范围:-127~+127
    优点:乘除法操作比较简单
    缺点:0有2种表示方法,   [+0]  =00000000,   [-0]  =10000000 。加减法运算可能会出现溢出错误。
    错误再现:(1 ) 10  (1 ) 10  =    (0 ) 10  ,用原码表示的:  (00000001 ) +  (10000001 ) (10000010 ) =    (-2 ) 10
    错误原因:原码的符号位不能直接参与运算,否则可能会出现错误。
    为了解决原码的加减法缺陷,引入了一个新的编码——反码。
      【反码】
    表示:由原码转换而来,正数跟原码一致;负数,符号位不变,其余各位按位取反。
    举例:  [+11]  =   [+11]  =00001011 。  [-11]  = 11110100 。
    范围:-127~+127
    优点:符号位可以直接参与运算。减法可以变为加法运算。
    缺点:0有2种表示方法,    [+0]   =00000000,    [-0]  =11111111 
    错误再现:(1 ) 10  (1 ) 10  =   (0 ) 10 ,使用反码的结果是:  (00000001 ) +  (11111110 ) (11111111 ) =    (-0 ) 10
 
    解决了加减法缺陷,还需要解决0编码的问题,遂又引入了一个新的编码——补码。
 
      【补码】
    表示:由反码转换而来,正数跟原码一致;负数,反码+1。
    举例:  [+11]  =   [+11]  =00001011 。  [-11] = 11110101 。
    范围:-128~+127
    优点:符号位可以直接参与运算。减法可以变为加法运算。0有唯一编码,   [+0]  = [-0]  =00000000 。
    现在 (1 ) 10  (1 ) 10  =   (0 ) 10  ,用补码表示的:  (00000001 ) +  (11111111 ) (00000000 ) =    (0 ) 10,结果正确。
    溢出判断:两个正数相加,如果符号位变为1,则溢出。两个负数相加,符号位变为了0,则溢出。正数+负数则不会溢出。
     【移码】
    表示:跟补码数值位一样,但符号位取反。
    举例:  [+11]  = 10001011 。  [-11] = 01110101 。
    范围:-128~+127
      【8421BCD码】
    表示:十进制数每位都用4位2进制数表示 。
    举例: 43 => 0100 0011 。
    优点:容易读数,二进制和十进制的转换快捷,适用于会计系统。
    溢出修正:结果>=9,则+6,进1 。如3+5:0011 + 0101 = 1000 正确。6+7:0110 + 0111 = 1101,结果需修正,1101+0110 = 10011 =(13 )10  
 

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

本文转载自:http://blog.csdn.net/xiaoxian8023/article/details/7413464

共有 人打赏支持
白志华
粉丝 29
博文 260
码字总数 57524
作品 0
长沙
程序员
计算机网络基本概述

计算机网络基本概述一、 计算机网络硬件软件:实现资源共享、信息传递 二、 计算机网络的功能数据通信、资源共享、增加数据可靠性、提高系统处理能力 三、网络协议与标准1、协议:一组控制数...

王浩hh ⋅ 01/01 ⋅ 0

这本读者期待的芯片书《手把手教你设计CPU——RISC-V处理器》终于出版!

点击关注异步图书,置顶公众号 每天与你分享IT好书 技术干货 职场知识 点击图片购书 参与文末话题讨论,每日赠送异步图书 ——异步小编 在摩尔定律减缓的今天,一味比拼硬件性能的技术竞赛变...

异步社区 ⋅ 05/14 ⋅ 0

操作系统from清华大学向勇,陈渝 笔记(一)绪论

操作系统operating system(OS)清华大学向勇,陈渝 笔记 上课视频来源,B站 搜操作系统 96P的那个 UP主真乃分P狂魔!!! 下篇和下下篇在这里 二 操作系统的启动、中断、异常、系统调用 三 ...

github_36487770 ⋅ 2017/02/08 ⋅ 0

OSI七层模型基础知识及各层常见应用

OSI七层模型基础知识及各层常见应用 OSI Open Source Initiative(简称OSI,有译作开放源代码促进会、开放原始码组织)是一个旨在推动开源软件发展的非盈利组织。OSI参考模型(OSI/RM)的全称...

水中月120 ⋅ 2013/11/29 ⋅ 0

JVM系列二:JVM体系结构

系列一里讲到了Java虚拟机和操作系统的体系结构差别,这一节就简单的讲一下Java虚拟机的内部体系结构 从上图可以看出,JVM包括四个模块,分别是 1.类装载子系统:在JVM启动或者运行时将需要的...

那位先生 ⋅ 2015/07/18 ⋅ 0

计算机基础知识+学习方向

目前所使用的计算机均遵循冯·诺依曼体系结构。其理论要点是:数字计算的是数制采用二进制;计算机按照程序顺序执行,必须使用二进制进行数据的存储和处理,规则简称为“软硬件结合,逻辑结合...

从运维开始 ⋅ 2017/01/06 ⋅ 0

基于Huffman编码的压缩程序

有同学在51CTO上学习了数据结构课程,希望我能给一个曾经做过的应用软件,让大家对数据结构知识练练手,这个建议非常好,学以致用嘛。因此特地翻出我曾经写过的一个程序,把这个题目送给那些...

王顶老师 ⋅ 2014/05/17 ⋅ 0

计算机模型与体系架构的发展——从图灵机到云计算机(1)

按照图灵(Alan Turing)给出的计算机模型,计算机是由一个有限状态读写头和一个存储器构成。有限状态读写头从一个初始状态开始,对存储器上的(输入)数据进行读或写操作,经过有限步操作之...

晨曦之光 ⋅ 2012/03/09 ⋅ 0

【Visual C++】游戏开发笔记十六 讲解一个完整的回合制游戏demo

本系列文章由zhmxy555编写,转载请注明出处。 文章链接 http://blog.csdn.net/zhmxy555/article/details/7447864 作者:毛星云 邮箱: happylifemxy@qq.com 这节笔记的主要内容是介绍一个完整...

长平狐 ⋅ 2012/11/12 ⋅ 0

【Visual C++】游戏开发笔记十六 讲解一个完整的回合制游戏demo

本系列文章由zhmxy555编写,转载请注明出处。 文章链接 http://blog.csdn.net/zhmxy555/article/details/7447864 作者:毛星云 邮箱: happylifemxy@qq.com 这节笔记的主要内容是介绍一个完整...

长平狐 ⋅ 2012/11/12 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

开启Swarm集群以及可视化管理

在搭建的两台coreos服务器上开启swarm集群 前置条件: docker均开启2375端口 同一个局域网内 主服务器上安装Portainer容器 安装Portainer容器执行: docker run -d -p 9000:9000 --restart=a...

ykbj ⋅ 3分钟前 ⋅ 0

单例设计模式

1、单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例 2、饿汉式单例类 在这个类被加载时,静态变量instance会被初始化,此时类的私有构造子会被调用 饿汉式是典型...

职业搬砖20年 ⋅ 8分钟前 ⋅ 0

前端基础(四):前端国际规范收集

字数:1142 阅读时间:5分钟 前言 由于前端技术的灵活性和杂乱性,导致网上的许多解决方案不够全面甚至是完全错误,容易起到误导作用。所以,我对搜索到的解决方案往往是存疑态度。那么,如何...

老司机带你撸代码 ⋅ 10分钟前 ⋅ 0

Failed to open/create Network-VirtualBox Host-Only

虚拟机版本 : Oracle Vm VirtualBox 5.2.12 报错时机:开网卡二,重启虚拟机报错 "Failed to open/create the internal network 'HostInterfaceNetworking-VirtualBox Host-Only Ethernet Ada......

p至尊宝 ⋅ 13分钟前 ⋅ 0

三分钟学会如何在函数计算中使用 puppeteer

摘要: 使用 puppeteer 结合函数计算,可以快速的构建弹性的服务完成各种功能,包括:生成网页截图或者 PDF、高级爬虫,可以爬取大量异步渲染内容的网页、模拟键盘输入、表单自动提交、登录网...

阿里云云栖社区 ⋅ 17分钟前 ⋅ 0

springMVC接收表单时 Bean对象有Double Int Char类型的处理

前台ajax提交表单price为double类型 后台controller就介绍不到 400错误 前台 实体类: public class ReleaseMapIconConfig{ private String id; private long maxValue; private long minVal......

废柴 ⋅ 19分钟前 ⋅ 0

ZOOKEEPER安装

工作需要在ubuntu上配置了一个zookeeper集群,有些问题记录下来。 1. zookeeper以来java,所以首先要安装java。但是ubuntu系统有自带的jdk,需要通过命令切换java版本: $ sudo update-alter...

恰东 ⋅ 22分钟前 ⋅ 0

linux 进程地址空间的一步步探究

我们知道,在32位机器上linux操作系统中的进程的地址空间大小是4G,其中0-3G是用户空间,3G-4G是内核空间。其实,这个4G的地址空间是不存在的,也就是我们所说的虚拟内存空间。 那虚拟内存空间...

HelloRookie ⋅ 22分钟前 ⋅ 0

myatis #{}与${}区别及原理

https://blog.csdn.net/wo541075754/article/details/54292751

李道福 ⋅ 25分钟前 ⋅ 0

三分钟学会如何在函数计算中使用 puppeteer

摘要: 使用 puppeteer 结合函数计算,可以快速的构建弹性的服务完成各种功能,包括:生成网页截图或者 PDF、高级爬虫,可以爬取大量异步渲染内容的网页、模拟键盘输入、表单自动提交、登录网...

猫耳m ⋅ 26分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部