原码、反码、补码解析,保证一次搞懂
符號數
二進制符號數,其格式為
為了區別書寫表示的帶符號的二進制數和數字系統中的帶符號二進制數,通常將用‘ + ’ ,‘ - ’ 表示正負的的二進制數稱為符號數的真值,而把符號和數值一起進行編碼的二進制數成為機器數。
常用的機器數就分為原碼、反碼、補碼
設{[X1]真=?Xn?1Xn?2?X0X?1X?2?X?m[X2]真=+Xn?1Xn?2?X0X?1X?2?X?m\begin{cases} [X^1]_真 = -X_{n-1}X_{n-2}\dotsm X_0X_{-1}X_{-2}\dotsm X_{-m} \\ [X^2]_真 = +X_{n-1}X_{n-2}\dotsm X_0X_{-1}X_{-2}\dotsm X_{-m} \end{cases}{[X1]真?=?Xn?1?Xn?2??X0?X?1?X?2??X?m?[X2]真?=+Xn?1?Xn?2??X0?X?1?X?2??X?m??
原碼:
原碼:符號位加上真值的絕對值,符號位0表示正,首位1表示負
具體數值:
則{[X1]原=0Xn?1Xn?2?X0X?1X?2?X?m[X2]原=1Xn?1Xn?2?X0X?1X?2?X?m\begin{cases} [X^1]_原 = 0X_{n-1}X_{n-2}\dotsm X_0X_{-1}X_{-2}\dotsm X_{-m} \\ [X^2]_原= 1X_{n-1}X_{n-2}\dotsm X_0X_{-1}X_{-2}\dotsm X_{-m} \end{cases}{[X1]原?=0Xn?1?Xn?2??X0?X?1?X?2??X?m?[X2]原?=1Xn?1?Xn?2??X0?X?1?X?2??X?m??
整數X:
[X]原={Xif(X≥0)2n+∣X∣if(?2n<X<0)[X]_原 = \begin{cases} X &{if } (X\ge0) \\ 2^n+|X| &{if } (-2_n<X<0) \end{cases}[X]原?={X2n+∣X∣?if(X≥0)if(?2n?<X<0)?
小數X:
[X]原={Xif(X≥0)1+∣X∣if(?1<X<0)[X]_原 = \begin{cases} X &{if} (X\ge0) \\ 1+|X| &{if} (-1<X<0) \end{cases}[X]原?={X1+∣X∣?if(X≥0)if(?1<X<0)?
反碼:
反碼:正數的反碼是其本身,負數的反碼在原碼的基礎上符號位不變,其余各位按位取反
{[X1]反=0X^n?1X^n?2?X^0X^?1X^?2?X^?m[X2]反=1X^n?1X^n?2?X^0X^?1X^?2?X^?m\begin{cases} [X^1]_反 = 0\hat X_{n-1}\hat X_{n-2}\dotsm \hat X_0\hat X_{-1}\hat X_{-2}\dotsm \hat X_{-m} \\ [X^2]_反= 1\hat X_{n-1}\hat X_{n-2}\dotsm \hat X_0\hat X_{-1}\hat X_{-2}\dotsm \hat X_{-m} \end{cases}{[X1]反?=0X^n?1?X^n?2??X^0?X^?1?X^?2??X^?m?[X2]反?=1X^n?1?X^n?2??X^0?X^?1?X^?2??X^?m??
具體數值:
整數X:
[X]反={Xif(X≥0)2n+1?1?∣X∣if(?2n<X<0)[X]_反=\begin{cases} X & {if} (X\ge0) \\ 2^ {n+1} -1 - |X|&{if} (-2_n \lt X<0) \end{cases}[X]反?={X2n+1?1?∣X∣?if(X≥0)if(?2n?<X<0)?
小數:
[X]反={Xif(X≥0)2?2?m?∣X∣if(?1<X<0)[X]_反=\begin{cases} X&{if}(X\ge0) \\ 2-2^{-m} - |X| & {if}(-1\lt X<0) \end{cases}[X]反?={X2?2?m?∣X∣?if(X≥0)if(?1<X<0)?
補碼:
補碼:正數的補碼是其本身,負數的補碼在原碼的基礎上符號位不變,其余各位按位取反再+1,也就是反碼+1,注意是最低位+1
{[X1]補=0X^n?1X^n?2?X^0X^?1X^?2?X^?m+X?m[X2]補=1X^n?1X^n?2?X^0X^?1X^?2?X^?m+X?m\begin{cases} [X^1]_補 = 0\hat X_{n-1}\hat X_{n-2}\dotsm \hat X_0\hat X_{-1}\hat X_{-2}\dotsm \hat X_{-m} + X_{-m}\\ [X^2]_補= 1\hat X_{n-1}\hat X_{n-2}\dotsm \hat X_0\hat X_{-1}\hat X_{-2}\dotsm \hat X_{-m} + X_{-m} \end{cases}{[X1]補?=0X^n?1?X^n?2??X^0?X^?1?X^?2??X^?m?+X?m?[X2]補?=1X^n?1?X^n?2??X^0?X^?1?X^?2??X^?m?+X?m??
具體數值:
整數X:
[X]補={Xif(X≥0)2n+1?∣X∣if(?2n<X<0)[X]_補=\begin{cases} X & {if} (X\ge0) \\ 2^ {n+1} - |X| &{if} (-2_n\lt X<0) \end{cases}[X]補?={X2n+1?∣X∣?if(X≥0)if(?2n?<X<0)?
小數:
[X]補={Xif(X≥0)2?∣X∣if(?1<X<0)[X]_補=\begin{cases} X&{if}(X\ge0) \\ 2 - |X| & {if}(-1\lt X<0) \end{cases}[X]補?={X2?∣X∣?if(X≥0)if(?1<X<0)?
總結
以上是生活随笔為你收集整理的原码、反码、补码解析,保证一次搞懂的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 操作系统储存管理功能
- 下一篇: 微信小程序开发--如何在swiper中显