9bh的补码 【知识点】4.1比特的运算使用逻辑和使用方法

1 什么是位?

Bit(二进制数字的缩写)翻译成中文为“二进制数”、“二进制数”或简称为“位”。

Bit只有2个值:0和1,一般没有大小。

正如 DNA 是人体组织的最小单位,原子是物质的最小单位一样,比特是数字信息的最小单位。

数值、字符、符号、图像、声音、命令……都可以用比特来表示。

2位的三种基本逻辑运算

位的值“0”和“1”可以代表两种不同的状态(例如电位的高/低,开关的关/开)。

位的运算使用逻辑代数,有3个基本的逻辑运算:

逻辑加法(也称为“或”运算,用符号“OR”、“∨”或“+”表示)。

逻辑乘法(也叫“AND”运算,用符号“AND”、“∧”或“·”表示,也可以省略)。

求反(也称为“非”运算,用符号“NOT”或上横杠“¯”表示)。

当对两个多位二进制信息进行逻辑运算时,它们是逐位独立进行的,即每个位不受其他位的影响:

示例 1

A:0110 ∨
B:1010
F: 1110

示例 2

A: 0110∧
B: 1010
F: 0010

3 位在计算机中是如何表示的?

表示一个位需要使用两种状态:

电路(CPU)的高态或低态

电容器(RAM)的充电或放电状态

两种不同的磁化状态(磁盘)

圆盘(圆盘)表面的凹凸状态

4 位存储

存储(记忆)1位需要使用具有两种稳定状态的元件,如开关、灯泡等。

4.CPU 中的 1 位存储

在计算机的 CPU 中,使用称为“触发器”的双稳态电路存储位。

触发器有两种状态,可以分别用来存储0和1。一个触发器可以存储一位。

一组(例如 8 个或 16 个)触发器可以存储 1 组位,称为“寄存器”。

一个CPU中有几十个甚至上百个寄存器。

断电后信息不再保留,是易失性存储器!

4.2 位存储在内存中

电容器在计算机内存中用于存储二进制信息:当电压施加到电容器的两个极时,它就会被充电。去掉电压后,充电状态还可以维持一段时间,所以可以用一个电容来存储1位。

电容C充电时表示1

当电容C处于放电状态时,表示0

集成电路技术可以在一个半导体芯片上制造出数十亿个微型电容器,从而形成可以存储大量二进制信息的半导体存储芯片。

停电后信息不再保留!

4.外部存储器中的 3 位存储

磁盘:利用磁介质表面区域的磁化状态来存储二进制信息。

光盘:只读光盘通过“雕刻”在光盘表面的微小凹坑记录二进制信息。

断电后信息可保留,非易失性内存!

5 个存储容量的计量单位

8位=1字节(字节,用大写B表示)

计算机内存容量的计量单位:

KB: 1 KB=2^10字节=1024 B (千字节)
MB: 1 MB=2^20字节=1024 KB(兆字节)
GB: 1 GB=2^30字节=1024 MB(吉字节、千兆字节)
TB: 1 TB=2^40字节=1024 GB(太字节、兆兆字节)

外部存储器容量通常使用 10 的幂来计算:

1MB=10^3 KB =1 000 KB
1GB=10^6 KB =1 000 000 KB
1TB= 10^9 KB = 1 000 000 000 KB

使用不同的基本前缀:

内存、缓存和半导体内存芯片的容量都使用二进制前缀:

512MB 记忆棒 (1M=2^20)

256KB 缓存 (1K=2^10)

文件和文件夹的大小使用二进制前缀。

对频率、传输率等使用十进制前缀:

主频1GHz(1G=10^9)

传输速率100Mbps(1M=10有^6)

外接存储容量(硬盘、DVD盘、U盘、存储卡等):

制造商标记的容量使用十进制前缀。

操作系统显示的容量使用二进制前缀。

6位传输

信息是可以传递的,信息只有通过传递和交流才能发挥作用。

在数字通信技术中,信息的传输是通过比特的传输来实现的。

短距离传输时:直接传输用来表示“0/1”的电或光信号(称为基带传输),例如:

计算机读取或写入移动硬盘中的文件。

使用打印机打印文档的内容。

对于长距离传输或无线传输:需要调制技术。

比特传输率:

传输率表示每秒可以传输的二进制位数。常用单位为:

比特/秒(b/s),也称“bps”。如 2400 bps(2400b/s)
千比特/秒(kb/s),1kb/s=103比特/秒=1 000 b/s

兆比特/秒(Mb/s),1Mb/s=106比特/秒=1 000 kb/s
吉比特/秒(Gb/s),1Gb/s=109比特/秒=1 000 Mb/s
太比特/秒(Tb/s),1Tb/s=1012比特/秒=1 000 Gb/s

8个不同基础系统的表示和意义

“数字”是一种信息,它有大小(数值),可以进行四次算术运算。

“数字”有不同的表示。人们在日常生活中使用十进制数,但计算机使用二进制数,程序员也使用八进制和十六进制数。他们是如何代表的?它的值是如何计算的?

8.1 个十进制数

每个数字可以用十个不同的数字表示(0、1、2、3、4、5、6、7、8、9).

低位和高位的关系是:每10个1个。

每个位的权重是 10 的整数幂(以 10 为底)。

标志:尾部带有“D”或默认值。

例子:

204.96=2×10^2+0×10^1+4×10^0+9×10^-1+6×10^-2

8.2 二进制

每个位由两个不同的数字表示(0、1),即每个位由 1 个“位”表示。

低位和高位的关系是:每2进1。

每个位的权重是2的整数幂(以2为底)。

符号:末尾加B

例子:

101.01 B =1×2^2+0×2^1+1×2^0 +0×2^-1+1×2^-2 =5.25

8.3 个十六进制数字

用十六进制数表示二进制数,相当于二进制数,更直观9bh的补码,因为4个二进制数可以用1个十六进制数表示,因为二进制的1111等于十进制的15,也就是十六进制的F 十进制和二进制位数不如十六进制方便,一位十进制大约相当于3.2位二进制数。

每个数字由十六个数字和符号表示(0、1、2、3、4、5、6、 7、8、9、A、B、C、D、E、F)。

对于每 16 个,基数是 16。

每个位的权重是 16 的整数幂(以 16 为底)。

符号:在末尾添加 H。

例子:

F5.4H=15×16^1 + 5×16^0 + 4×16^-1 = 245.25

8.4 个八进制

一个八进制数可以表示三个二进制数,因为二进制的111也是八进制的7。

每个数字由八个不同的数字表示(0、1、2、3、4、5、6、7).

低位和高位的关系是:每8进1。

每个位的权重是 8 的整数幂(以 8 为底)。

符号:在末尾添加 Q。

例子:

365.2Q = 3×8^2+ 6×8^1+ 5×8^0 + 2×8^-1 = 245.25

9 不同基数的转换

精通不同基数之间的转换,在编写程序和设计数字逻辑电路时非常有用。

只要你学会二进制数和十进制数之间的转换,八进制和十六进制数的转换就很容易了。

9.1个十进制数→二进制数

转换方式:

整数和小数分开转换。

整数部分:除以2,取余数倒序

小数部分:乘以2并向上取整

示例:29.6875→11101.1011 B

注意:十进制小数(如0.63)转换时会出现二进制无限小数,此时只能取近似值。

图片[1]-9bh的补码 【知识点】4.1比特的运算使用逻辑和使用方法-唐朝资源网

9.2 二进制数→十进制数

转换方式:

二进制数的每一位乘以它对应的权重,然后累加得到它的十进制值。

示例:11101.1011B

= 1×2^4+1×2^3+1×2^2+0×2^1+1×2^0

+1×2^-1+0×2^-2+1×2^-3+1×2^-4

= 29.6875

9.3 八进制和二进制的互换

八进制→二进制:将每个八进制数重写为等效的3位二进制数,保持高低位顺序不变。

例如:2467.32Q → 010 100 110 111 。 011 010 乙

二进制→八进制:整数部分从低位到高位每 3 位替换为等效的八进制数。不足3位时,补高位0补3位;小数部分是从高位到低位。每 3 位数字使用一个,将其替换为等效的八进制数。如果少于3位,则在低位加0,补到3位。

示例:1 101 001 110.110 01 B → 001 101 001 110.110 010 B

→ 1516.62 Q

9.4 十六进制与二进制数的互换

转换方法:类似于八、二进制交换的方法。

示例1:35A2.CFH → 11 0101 1010 0010.1100 1111B

示例 2:11 0100 1110.1100 11B → 34E.CCH

PC 中的 10 种主​​要数字类型

所有都以二进制表示,具有不同的类型和长度。

不同类型和长度的数字有不同的用途。

10.1 个无符号整数表示

图片[2]-9bh的补码 【知识点】4.1比特的运算使用逻辑和使用方法-唐朝资源网

10.2 有符号整数表示

图片[3]-9bh的补码 【知识点】4.1比特的运算使用逻辑和使用方法-唐朝资源网

二进制补码中负数的绝对值如何表示?

首先,用自然码表示。

反转自然码的每一位。

将“1”添加到最低有效位。

图片[4]-9bh的补码 【知识点】4.1比特的运算使用逻辑和使用方法-唐朝资源网

4位补码方案可以表示的数据范围:

图片[5]-9bh的补码 【知识点】4.1比特的运算使用逻辑和使用方法-唐朝资源网

10.3原码与补码优缺点分析

原始代码符号:

优点:与每日十进制表示一致,简单直观。

缺点:加减法规则不统一,增加了成本;整数0有“00000000”和“10000000”两种表示,不方便。

补码:

优点:加减运算规则统一,没有“-0”,能表示的数比原码多一(-2n-1)。

缺点:不直观,不方便人们使用。

10.原码和补码可以表示的4个整数范围

原代码可以表示的整数范围:

8位原码:-27+1~27-1(-127~127)

16位原码:-215+1~215-1(-32767~32767)

n位原码:-2n-1+1~2n-1-1

二进制补码可以表示的整数范围:

8位补码:-27~27-1 (-128~127)

n位补码:-2n-1~2n-1-1

– 128 是 10000000

+127 是 01111111

10.5 计算机中整数表示的比较

计算机中有很多种整数。当相同的二进制代码表示不同类型的整数时,它们的含义(值)可能不同。

代码代表什么样的整数(或什么)由指令决定。

图片[6]-9bh的补码 【知识点】4.1比特的运算使用逻辑和使用方法-唐朝资源网

10.6 实数的特征和表示

实数有整数部分和小数部分,小数点的位置不固定。

任何实数都可以表示为幂和纯小数的乘积。

例子:

56.725 = 0.56725×10^2

-0.0034756 = -0.34756×10^-2

实数的表示方法(标度法/浮点表示法):由3部分表示:

幂中的指数(也称为指数):表示实数中小数点的位置。

纯小数部分(尾数):表示实数的有效数字部分。

数字的符号(sign)。

二进制实数的浮点表示:

与十进制实数一样,二进制实数也可以用顺序表示法表示,例如:

+1001.011B = + 0.1001011B×2^100

-0.0010101B =-0.10101B×2^-10

可以看出,任意二进制实数N都可以表示为:

N=±S×2P

(其中±是数字的符号;S是N的尾数;P是N的指数)

因此,一个 32 位的单精度浮点数在计算机中可以表示为:

由于指数(序号)可以选择不同的代码(原码、补码等),尾数的格式和小数点的位置也可以不同,所以早期计算机中的浮点数彼此不同。

在现代计算机中,浮点数通常存储在 IEEE 754 标准中。该标准以以下形式存储在内存中:

对于不同长度的浮点数,指数和小数位数不同。例如,对于 32 位单精度浮点数,数字分配 1 位,指数分配 8 位,尾数分配 23 位。位:

图片[7]-9bh的补码 【知识点】4.1比特的运算使用逻辑和使用方法-唐朝资源网

符号位:0表示正; 1 表示否定;

偏移指数 e:e=指数的实际值 + 127。

如果有浮点数10110010.001,则指数为7,指数应用7+127的二进制数表示,即:111+01111111 = 10000110

尾数用原码表示,绝对值在1到2之间,其中1和小数点是隐含的,不直接表示。

根据这个标准,让我们尝试将十进制浮点数转换为 IEEE754 标准表示。

示例:178.125

先将浮点数的整数部分和小数部分转为二进制:

整数部分除以2得到余数:10110010

小数部分乘以2并四舍五入得到:001

合:10110010.001

转换为二进制浮点数9bh的补码,即小数点只移到整数位1,即:1.0110010001 * 2^111,111是二进制,因为左移7位,所以是111

p>

浮点数转换为二进制后,这里基本可以得到三部分对应的值:

数字符号:由于浮点数为正数,所以为0(负数为1)。

订单代码:订单代码的计算公式:订单+偏移量,订单代码需要移位。转换后的二进制数中,序号为111(十进制为7),对于单精度浮点数,偏移值为01111111(127)[偏移的计算为:2 ^(e-1)-1, e为订单码位数,为8,所以偏移值为127],即:111+01111111 = 10000110

尾数:小数点后的数字,即0110010001

最后根据职位填写:

图片[8]-9bh的补码 【知识点】4.1比特的运算使用逻辑和使用方法-唐朝资源网

可能会有一个问题:小数点前的1去哪儿了?由于尾数部分被归一化,最高位始终为“1”,所以直接隐藏,同时节省1位存储小数,提高精度。

浮点数的二进制显示可以使用如下代码:

#include
#include  //STL的bitset模板类
using namespace std;
void main()
{
	union {
		float input;
		int output;
	} data;
	data.input = 178.125;
	std::bitsetbits2(data.output);
 //bitset模板类定义对象,内为长度,()为值
 //如bitset bitset2(12);	//长度为8,二进制保存,前面用0补充
	std::cout << bits2 << std::endl;
	system("pause");
}
//01000011001100100010000000000000

-结束-

© 版权声明
THE END
喜欢就支持一下吧
点赞157赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容