二進位制數的一些有用特性

2021-08-30 05:44:09 字數 671 閱讀 6397

摘自:《程式設計卓越之道:深入計算機系統》

二進位制數有一些很有趣的東西可以學習,而且它們對我們的開發會帶來很大的幫助,這些特性是:

1、如果乙個二進位制(整型)數的第零位的值是一,那麼這個數就是奇數;而如果該位是零,那麼這個數就是偶數。

2、如果乙個二進位制數的低端n位都是零,那麼這個數可以被2n整除。

3、如果乙個二進位制數的第n位是一,而其他各位都是零,那麼這個數等於2n。

4、如果乙個二進位制數的第零位到第n位(但不包含位n)都是一,而其他各位都是零,那麼這個數等於2n-1。

5、將乙個二進位制數的所有為左移一位的結果是將該數乘以二。

6、將乙個無符號二進位制數的所有位右移一位的結果等效於該數除以二(這對有符號數不適用)。餘數會被下捨入(round down)。

7、將兩個n位二進位制數相乘可能會需要2*n位來儲存結果。

8、將兩個n位數相加或者相減絕對不會需要多於n+1位來儲存結果。

9、將乙個二進位制數的所有位取反等效於將該數取負(改變符號)再將結果減一。

10、將任意給定個數的位表示的最大的無符號二進位制數加一的結果永遠是零。

11、零遞減(減一)的結果永遠是某個給定個數的位表示的最大無符號二進位制數。

12、n位可以表示2n個不同的組合。

13、數2n-1包含n位,所有位都是一。

收藏之,與眾共享,忘日後善用。

二進位制的一些操作

1 二進位制與十進位制互轉 十進位制轉二進位制 例子 13 1101 13 2 6餘1 6 2 3餘0 3 2 1餘1 1 2 0餘1 那麼13用二進位制表示為 1101 倒序排列餘數 不足的用0補齊 00001101 二進位制轉十進位制 例子 1101 13 可以在c 裡面宣告為 int num ...

關於二進位制的一些總結

5 00000000 00000000 00000000 00000101 原碼 乙個整數,按照絕對值大小轉換成的二進位制數 反碼 將二進位制數按位取反,所得的新二進位制數稱為原二進位制數的反碼 補碼 反碼加1稱為補碼 5 原碼 00000000 00000000 00000000 00000101...

二進位制補碼的一些思考

最近都一直在看幾本關於計算機組成原理方面的大作 code the hidden language of computer hardware and software computer system a programer perspective introduction to computer sy...