【嵌入式百科】002——原码、反码、补码
嵌入式 002 补码 百科 原码 反码
2023-09-11 14:21:44 时间
书写时表示的数和机器中编码表示的数分别称为真值(无符号数)与机器数(有符号数)。常用的机器数表示有原码、反码、补码三种形式。
以下解释基于八位二进制。
一、原码
1. 原码表示法在数值前面增加了一位符号位(即最高位为符号位);正数该位为0,负数该位为(0有两种表示:+0和-0),其余位表示数值的大小。原码的取值范围为-127~127。
如:+110(书写二进制为+1101110B) 其原码为:01101110B
-110(书写二进制为-1101110B) 其原码为:11101110B
二、反码
1. 最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。反码的取值范围是-127~127。
2. 原码转换到反码:①正数的反码与原码相同 ②负数的反码为它的绝对值按位取反,符号位不变。
如:【-110】,原码为11101110B,反码为:10010001B
三、补码
1. 最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。补码的取值范围位-128~127。
2. 原码转换到补码:①正数的原码与补码相同 ②负数的补码为将其原码除符号位外的所有位取反(0变1,1变0,符号位为1不变)后加1
如:【-110】,原码为11101110B,补码为:10010010B
四、其它
一些特殊点数的原码,反码,补码
+0 | -0 | +1 | -1 | 127 | -127 | -128 | |
原码 | 0000 0000 | 1000 0000 | 0000 0001 | 1000 0001 | 0111 1111 | 1111 1111 | 无 |
反码 | 0000 0000 | 1111 1111 | 0000 0001 | 1111 1110 | 0111 1111 | 1000 0000 | 无 |
补码 | 0000 0000 | 0000 0000 | 0000 0001 | 1111 1111 | 0111 1111 | 1000 0001 | 1000 0000 |
相关文章
- 【Linux】嵌入式开发,在Linux中使用C语言对Fork函数执行子函数及父函数,命令ps 及 ls 操作
- [system]Linux 嵌入式系统升级
- 嵌入式Linux驱动和固件有何区别?供应商是如何用固件压缩成本的?
- 《安富莱嵌入式周报》第293期:SEGGER开源其C/C++库源码emRun,丰富EMC电磁兼容资,OTA开源组件,2022 Github全球报告,内存安全指南
- 《安富莱嵌入式周报》第260期:2022.04.04--2022.04.10
- 《安富莱嵌入式周报》第242期:2021.11.29--2021.12.05
- 《安富莱嵌入式周报》第224期:2021.08.02--2021.08.08
- 嵌入式新闻早班车-第8期
- 嵌入式新闻早班车-第5期
- 【STM32H7】第1章 当前主流的小型嵌入式网络协议栈
- 聊一聊物联网嵌入式芯片的内容结构
- 嵌入式linux开发,Linux下访问PHY芯片寄存器
- 研发思维05----嵌入式智能产品外观设计之经典
- 研发思维01-----嵌入式智能产品开发流程之经典
- 嵌入式linux开发,配置uboot报错:<command-line>:0:12: fatal error: curses.h: No such file or directory
- 嵌入式linux时间同步,ntpdate的交叉编译
- 嵌入式linux开发,使用busybox中的ntpd,作为客户端模式进行校时
- 蓝桥杯嵌入式第一课--创建工程