二進位制補碼和十進位制數的轉換

2021-10-23 03:29:01 字數 779 閱讀 3738

先考慮如何將二進位制補碼轉換為十進位制整數:

若符號位是0, 則該數是正數, 原碼等同於補碼. 可以由原碼(也就是補碼)得知代表的正整數.

若符號為是1, 則該數一定是負數, 可按照以下方式轉換: 方式一: 先把符號位去掉, 把剩下的非符號位取反後得到乙個無符號位的二進位制序列, 將該二進位制序列轉換為十進位制整數(注意:無符號位二進位制序列代表的一定是正數),

將該整數加1得到的數便是原補碼代表的整數的絕對值. 如: a = 1011(補碼), 011取反得到100, 100代表4, 4+1=5,

|a|=5, a=-5. 方式二: 利用公式: (-1)2^(n-1) + 非符號位代表整數 = 值. 如a =

1011(補碼), n = 4, 011代表3, a = -12^3 + 3 = -5.

功能函式

int

u4complement

(byte *pdata)

主函式

#include

"pch.h"

#include

#include

"math.h"

using

namespace std;

typedef

unsigned

char byte;

intu4complement

(byte *pdata)

;int

main()

十進位制二進位制轉換

一 整形裝換成兩個位元組 int value 456 unsigned char byte1 value 0xff00 8 高8位 unsigned char byte2 value 0xff 低8位 nslog byte1 x byte2 x byte1,byte2 byte1 1 byte2 c...

十進位制二進位制轉換

1.十進位制轉二進位制 正整數轉二進位制 除二取餘,然後倒序排列,高位補零 負整數轉二進位制 先是將對應的正整數轉換成二進位制後,對二進位製取反,然後對結果再加一。小數轉換二進位制 對小數點以後的數乘以2,取結果的整數部分 不是1就是0嘍 然後再用小數部分再乘以2,再取結果的整數部分 以此類推,直到...

十進位制二進位制轉換

二進位制轉十進位制 二進位制的1101轉化成十進位制 1101 2 1 2o 0 21 1 22 1 23 1 0 4 8 13 轉化成十進位制要從右到左用二進位制的每個數去乘以2的相應次方 不過次方要從0開始 相反 用十進位制的數除以2 每除一下將餘數就記在旁邊 最後按餘數從下向上排列就可得到11...