让找料更便捷
电子元器件
采购信息平台
生意随身带
随时随地找货
一站式电子元器件
采购平台
半导体行业观察第一站
标签:
摘要:数值数据分为有符号数和无符号数。无符号数最高位表示数值,而有符号数最高位表示符号。有符号数有不同的编码方式,常用的是补码。 (1)原码:最高位表示符号(正数用 0, 负数用 1 ),其它位为该数的二进制数值,称为有符号数的原码表示。① 小数原码的定义 [X] 原 = X 0≤X < 1 1 - X - 1 < X ≤ 0 例如: X=+0.1011 , [X] 原 = 0.1011
数值数据分为有符号数和无符号数。无符号数最高位表示数值,而有符号数最高位表示符号。有符号数有不同的编码方式,常用的是补码。
(1)原码:
最高位表示符号(正数用 0, 负数用 1 ),其它位为该数的二进制数值,称为有符号数的原码表示。
① 小数原码的定义
[X] 原 =
![]()
X
0≤X < 1
1 - X
- 1 < X ≤ 0
例如: X=+0.1011 , [X] 原 = 0.1011
X= - 0.1011 [X] 原 = 1.1011
② 整数原码的定义
[X] 原 =
![]()
X
0≤X <![]()
- X
-
< X ≤ 0
【例】
X=45D=00101101B [X] 原 = 00101101B
X=-45D [X] 原 =10101101B
原码表示简单易懂,但若是两个异号数相加(或两个同号数相减) , 就要做减法。为了把减法运算转换为加法运算就引进了反码和补码。(2)反码:
正数的反码与原码相同,符号位用 0 表示,数值位不变。负数的反码符号位用 1 表示 , 数值位为原码数值位按位取反形成,即 0 变 1 、 1 变 0 。
① 小数反码的定义
[X] 反 =
![]()
X
0≤X < 1
2 -
- X
- 1 < X ≤ 0
例如: X=+0.1011 [X] 反 = 0.1011
X= - 0.1011 [X] 反 = 1.0100
② 整数反码的定义
[X] 反 =
X
0≤X <![]()
- 1 - X
-
< X ≤ 0
【例】 X=45D=00101101B, [X] 反 =00101101B
X=-45D [X] 反 =11010010B
( 3 )补码:
正数的补码与原码相同,即符号位用 0 表示,数值位不变。负数的补码为反码加 1 形成。
① 小数补码的定义
[X] 补 =
X
0≤X < 1
2 + X
- 1 ≤ X < 0
例如: X=+0.1011, [X] 补 = 0.1011
X= - 0.1011, [X] 补 = 1.0101
② 整数补码的定义
[X] 补 =
X
0≤X <
+ X
-≤ X < 0
【例】 X=45D=00101101B [X] 补 =00101101B
X=-45 D [X] 补 =11010011B
(4)符号扩展:
在数据处理时,有时需要把 8 位二进制数扩展成 16 位二进制数。
当要扩展的数是无符号数时,可在最高位前扩展 8 个 0 。
如果要扩展的数是补码形式的有符号数,那么就要进行符号位的扩展。符号扩展后,其结果仍是该数的补码。
(5)数据的表示范围和大小
n 位二进制数能表示的无符号整数的范围是 :
0 ≤ I ≤;
n 位二进制数能表示的有符号整数的范围是 :
-≤ I ≤ +
-1
(6)补码的加法和减法
1 、运算规则
[X + Y] 补 = [X] 补 + [Y] 补
[X - Y] 补 = [X] 补 + [ - Y] 补
若已知 [Y] 补 ,求 [ - Y] 补 的方法是:将 [Y] 补 的各位(包括符号位)逐位取反再在最低位加 1 即可。
例如: [Y] 补 = 101101 [ - Y] 补 = 010011
2 、溢出判断,一般用双符号位进行判断:
符号位 00 表示正数 11 表示负数
结果的符号位为 01 时,称为上溢;为 10 时,称为下溢
例题:设 x=0.1101 , y= - 0.0111 ,符号位为双符号位
用补码求 x+y , x - y
[x] 补 +[y] 补 =00 1101+11 1001=00 0110
[x - y] 补 =[x] 补 +[ - y] 补 =00 1101+00 0111=01 0100
结果错误,正溢出
补码的特性: [[ X ] 补]补 ==> [- X ] 补
[[-X]补]补 ==> [ X ] 补
补码的加法规则: [ X+Y ] 补 =[ X ] 补+ [ Y ] 补
补码的减法规则: [ X - Y ] 补 =[ X ] 补+ [- Y ] 补
| 型号 | 厂商 | 价格 |
|---|---|---|
| EPCOS | 爱普科斯 | / |
| STM32F103RCT6 | ST | ¥461.23 |
| STM32F103C8T6 | ST | ¥84 |
| STM32F103VET6 | ST | ¥426.57 |
| STM32F103RET6 | ST | ¥780.82 |
| STM8S003F3P6 | ST | ¥10.62 |
| STM32F103VCT6 | ST | ¥275.84 |
| STM32F103CBT6 | ST | ¥130.66 |
| STM32F030C8T6 | ST | ¥18.11 |
| N76E003AT20 | NUVOTON | ¥9.67 |