中午看了點《深入ooxx》, 繼續之前看的很糊塗的二進位製碼關於補碼反碼的問題。
現在有點頭緒,寫點。
#include
#include
int outit(unsigned char * ptr,int n)
{int i;
for(i=0;i測試2進製碼的程式。
跟著書上寫的想下去,會出現一點思維上的迷糊,因為我們平時記住的補碼=反碼+1;
因該把這個歸於捷徑而不是我們思維的方法,補碼的真正意義是在於將最高位(比如8421的8)看作負(即-8)
然後於其他各個位的權值相加。
如 1011 計算思路 -8+2+1 = 5
然而編譯器處理你輸入的數是有一定的方法。下次繼續寫。
原碼,反碼,補碼,有符號數和無符號數
請先看以下博文 原碼,反碼,補碼 詳解 c語言系列 二 有符號數和無符號數詳解 有符號數,無符號數 對於乙個二進位制數,它可以是有符號數,也可以是無符號數,具體是哪個,由 決定。比如 1000 0001無符號數 當前二進位制的大小,即1000 0001表示129 有符號數 將最左邊一位做為符號位,剩...
原碼 反碼 補碼 有符號數和無符號數運算
原碼 原碼就是符號位加上真值的絕對值,即用第一位表示符號,其餘位表示值.比如如果是8位二進位制 1 原 0000 0001 1 原 1000 0001 第一位是符號位.因為第一位是符號位,所以8位二進位制數的取值範圍就是 1111 1111 0111 1111 即 127 127 原碼是人腦最容易理...
原碼 反碼 補碼 與無符號數(C語言)
將最高位作為符號位 0代表正,1代表負 其餘各位陣列代表數值本身的絕對值。打個比方 7的原碼是0000 0111 7的原碼是1000 0111 最高位決定了這個數是正數還是負數,其餘位數就是該數的二進位制。如果乙個數為正,那麼它的反碼和原碼相同。如果乙個數為負,那麼符號位為1,其他個位與原碼相反。7...