評價: 0 回應: 2 閱覽: 115
置頂

補數

大家好,胎嘎賀

如題,short  n=12

n的二進位值為 0000000000001100

~n運算後變為  1111111111110011

 

為何1111111111110011在十進位是 -13


short範圍-32768到32767

我覺得應該是很靠32767的一個值

熱門回應

在2's complement中定義就是這樣去運算。如樓上所說the most significant bit可以看做sign的符號,如果此bit是1代表是負數,當要轉成10進位時就會先做2' complement,所以會變成

(1111111111110011)2=(-(0000000000001100+0000000000000001))2

                                    =(-(12+1))10

                                    =(-13)10

建議可以去看 二補數 維基百科了解轉換過程

補數可把第一個bit當做sign bit, 1代表負 0代表正

況且那串不會很靠近32767,2^15就32768,後面還一串

會員登入 (先登入會員才能回覆留言喔!)

Facebook留言