細學C 之補碼

2021-10-07 20:19:32 字數 615 閱讀 4660

這就涉及到了二進位制轉換為十進位制的問題,這個大家應該是很熟的,畢竟在高中或者大學都是有教學的,但是在計算機中的二進位制,是要更深入一點,我們將這種轉換稱為計算補碼。

在計算機中計算補碼有兩種情況:

1.對正數

對於正數來說,就是我們常見的二進位制轉換為十進位制的計算,直接按位計算權重和,如下圖

對於01010這個二進位製碼從右往左按照從0開始遞增的計數操作壹壹對應作為其下標,後用對應位置上的位(基本上是1)乘以2的下標次方,將它們的和相加就得到了該二進位制的補碼

2.對負數

對於負數補碼的計算:保留符號位,並對除了符號位的其他所有位進行取反操作+1,如下圖

1.邏輯右移:

移走的左邊為填充為0

2.算術右移:

移走的左邊為填充為1

這不像左移一般符號位是不變的,所以在對有符號數進行右移時,可能會有不同的情況,並且這種情況不是認為能干預的,所以盡量避免對有符號數進行右移的操作。

細學C 之位運算子

c 運算子包括算數運算子 關係運算子 邏輯運算子 賦值運算子和位運算子等,其中位運算子是我們比較少用到的 至少我是 但它在c 語言中是必不可少的,這篇文章就來介紹一下c 中的位運算子 位運算子包括位邏輯運算子和移位運算子,顧名思義,位運算子作用於位,並逐位執行操作 位邏輯運算子 位 與 位 異或 位...

C 補碼 反碼

0001 取反 1110 符號位為1,取反 1為 1010 轉化成10進製為 2正數的原碼,補碼,反碼都相同,都等於它本身 負數的補碼是 符號位為1,其餘各位求反,末位加1 反碼是 符號位為1,其餘各位求反,但末位不加1 也就是說,反碼末位加上1就是補碼 1100110011 原 101100110...

Hbuilder app 開發 之 MUI個別細節

1.自定義事件傳值 在列表頁面用mui.fire啟用自定義事件 id id fire target event data target type webviewobject 需傳值的目標webview event type string 自定義事件名稱 data type json json格式的資...