数字电路基础知识——数字IC中的进制问题(原码,反码,补码以及各进制的转换)
数字电路基础知识——数字IC中的进制问题(原码,反码,补码以及各进制的转换)
本节介绍数值和码制的问题,重点需要理解的是关于补码的相关知识。
一、进制的表示
- 以10、2进制为例:
对于10进制数123.45:
对于 整数 n 位,小数 m 位 2进制:
因此,对于一个整数 n 位,小数 m 位 的 r 进制:
二、进制的转换
十进制数转化为R进制数:
整数部分,除R取余法,除到商为0为止。
小数部分,乘R取整法,乘到积为1为止。
如:
127 = 0111_1111
-127 = 1111_1111
127.375 = 0111_1111.011
-127.375 = 1111_1111.011二进制转化为十进制:
按权的展开利用上面的展开式进行计算。
如:
八进制、十六进制与二进制的转换
二进制,从小数点开始,向左或向右四位为十六进制,三位为八进制
如:
三、原码,反码,补码,符号-数值码。
以4bit为例,给出各自表示的数值范围。
原码:
符号位+真值,最高位表示符号位。
0表示正数,1表示负数
[+3]原 = 0011
[-3]原 = 1011
原码中0000和1000都表示0。
一个n bit位的有符号数,他表示的范围是 -2n-1~2n-1反码:
正数的反码是它本身,负数的反码将原码除符号位外逐位取反。
[+3]原 = [0011]原 = [0011]反
[-3]原 = [1011]原 = [1100]反
表示范围:-7到+7
反码中0000和1111都表示0。
一个n bit位的有符号数,他表示的范围是 -2n-1~2n-1补码:
正数的补码是它本身,负数的补码将原码除符号位外逐位取反再加1。以4bit为例。
负数的补码这种原理:是因为一个n位的符号负数X,和X+2n-1是同模的。
如:
四位有符号数-6(1110)和-6 + 8 = 2(0010是同模的)
取反操作,相当于加2n-1-1,所以还需要再加1
[+3]原 = [0011]原 = [0011]反 = [0011]补
[-3]原 = [1011]原 = [1100]反 = [1101]补
表示范围:-8到+7
补码中0的表示只有一种形式,即0000, 1000表示-8。
一个n bit位的有符号数,他表示的范围是 -2n-1~2n-1-1
以上是有符号数,对于无符号数来说都是来表示整数,其原码、反码、补码都是其本身。
对于三位二进制带符号的原码、补码、反码对照表
十进制数 | 原码 | 反码 | 补码 |
---|---|---|---|
+7 | 0111 | 0111 | 0111 |
+6 | 0110 | 0110 | 0110 |
+5 | 0101 | 0101 | 0101 |
+4 | 0100 | 0100 | 0100 |
+3 | 0011 | 0011 | 0011 |
+2 | 0010 | 0010 | 0010 |
+1 | 0001 | 0001 | 0001 |
+0 | 0000 | 0000 | 0000 |
-1 | 1001 | 1110 | 1111 |
-2 | 1010 | 1101 | 1110 |
-3 | 1011 | 1100 | 1101 |
-4 | 1100 | 1011 | 1100 |
-5 | 1101 | 1010 | 1011 |
-6 | 1110 | 1001 | 1010 |
-7 | 1111 | 1000 | 1001 |
-8 | 1000 | 1111 | 1000 |
需要特别注意的是+0 -8 两个数的码制。
原码和补码是自己的有正数、0、和 2n-1、-4
四、码制的运算
- 原码运算
首先符号位不参与运算,单独处理
设A、B表示绝对值,有下列两大类八种情况
第一种:
(+A) + (+B) = (+A) - (-B)
(-A) + (-B) = (-A) - (+B)
同符号数相加或者异号数相减,运算规则为绝对值相加,取被加数或被减数的符号
第一种:
(+A) - (+B) = (+A) + (-B)
(-A) - (-B) = (-A) + (+B)
同符号数相减或者异号数相加,运算规则为绝对值相减,取绝对值较大的符号
例:
- 补码运算
补码加减运算规则:
补码的符号位参与加减运算并且符号位有进位时,应当舍弃。
对于补码的这种运算规则,在计算机系统中位“模数系统”,如四位的 8 + 9 = 17 与 1 是相同的结果,那么17 和 1 为同余。
例:
- 反码运算
- 当符号位有进位时,应在结果的最低位加 1 , (循环进位)
例:
五、常用的码制
- BCD码:
四位二进制数来表示一位十进制数0~9的十个状态的编码,如下:
- 格雷码:
格雷码的每一位按照一定的顺序循环。如最右边的一位按照0110的顺序循环,右边第二位按照00111100的顺序循环。即自右向左0、1的循环数目翻倍。
格雷码的最主要特点:各个相邻码之间仅有一位状态不同,首尾也是仅有一位状态不同。
数字电路基础知识——数字IC中的进制问题(原码,反码,补码以及各进制的转换)相关推荐
- java进制原码_Java 一一 进制、原码 反码 补码、移位操作
进制 二进制 和 十进制 相互转换 十进制 和 十六进制 相互转换 原码,反码,补码 原码.反码.补码: 在计算机内, 有符号数有三种表示法: 原码, 反码, 补码. 所有的数据的运算都是采用 补码 ...
- 补码原码转换c语言代码,c/c++原码反码补码原理 以及进制转换
1首先了解 低字节位 和高字节位 看图 2字节在内存的排列方式//int num = 010; //0开头代表 8禁止 //("%d",num); //所以打印的是8 int nu ...
- python二进制反码例题_python中的进制转换和原码,反码,补码
python中的进制转换和原码,反码,补码 计算机文件大小单位 b = bit 位(比特) B = Byte 字节 1Byte = 8 bit #一个字节等于8位 可以简写成 1B = 8b 1KB ...
- Verilog基础知识(数值表示总结,signed,原码,反码,补码)
以前虽然是用过verilog,但是只使用了其中最常见wire,reg类型数据,并且是无符号的,因为是及处理过程很多数据就是无符号的.但是想进一步拓展无符号数,或者其底层的补码形式存储与运算方式,就需要 ...
- 关于计算机中 原码, 反码, 补码 详解
本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希 ...
- C语言基础(二)—— 常量与变量、数据类型、进位制、关键字、原码反码补码、限定符、字符串格式化输入输出
1. 常量与变量 1.1 关键字 1.2 数据类型 数据类型的作用:编译器预算对象(变量)分配的内存空间大小. 1.3 常量 在程序运行过程中,其值不能被改变的量 常量一般出现在表达式或赋值语句中 整 ...
- java基础-原码反码补码
本文帮助理解,Java中原码反码补码的原理 1:原码反码补码,基础概念和计算方法 对于一个数,计算机需要使用一定的编码方式进行存储.原码反码补码是计算机存储一个具体数字的编码方式. 原码: 第一位表示 ...
- 【原码, 反码, 补码的基础概念和计算方法】
数值在计算机中是以补码的方式存储的,在探求为何计算机要使用补码之前, 让我们先了解原码, 反码和补码的概念. 原码就是符号位加上数字的二进制表示, 即用第一位表示符号, 其余位表示值. 反码的表示方法 ...
- 大端 小端 原码 反码 补码 及内存中的表现
小端 和 大端 在内存中存储时,都是从内存的低地址往高地址存,即0x00000000 -> 0xffffffff 以汉字 "严"为例,Unicode码是4E25,需要两个字节 ...
- 进制之间的快速转换法:8421码及原码反码补码之间的相互转换关系
进制之间的快速转换法: 十进制和二进制的指尖的快速转换法: 8421码,是BCD码的一种 二进制数据中的每个位上的1,都代表一个固定的数值,将固定的数值相加即可! 二进制: 1 1 1 1 1 1 1 ...
最新文章
- RT3070_STA_驱动移植文档
- linux c++连接mysql示例
- Ubuntu下安装和配置Apache及Apache2
- JavaScript多继承(转载)
- php实现微信红包金额随机分配的函数
- 用matlab解根3乘根2,数值计算课后习题答案--石瑞民.doc
- 央视推荐的护眼台灯是什么牌子?教育照明灯具品牌
- 南京财经大学计算机考研资料汇总
- excel文件服务器未响应,excel打不开文件未响应怎么处理-处理excel无法打开文件未响应的方法 - 河东软件园...
- 【精益生产】108页PPT搞懂精益生产价值流分析图(VSM)
- P2440 木材加工
- windows 10如何设置局域网共享文件夹,详细教程
- 联想thinkbook16+ 2023款和2022款参数对比
- EXE转JPG后缀格式工具(真实JPG后缀)
- 金融事业部QA培训体系
- 智能运维案例系列 | 新网银行 X 袋鼠云:银行核心业务系统日志监控平台建设实践...
- 美国把一名俄罗斯黑客告上法庭 4年前曾入侵LinkedIn
- 实例讲解将Graph Explorer搬上JupyterLab
- okhttp3基本用法
- 如何做一个自动重复发消息的脚本