我在領釦作題——a+b

1.a+b spa

1 + 3
1:0001
3:0011
4: 0100
1|3:0011=3
無進位時a|b = a +b
有進位則不成立對象

計算思路:使用異或運算【不進位加法】忽略有進位的位置,再加上應該有的進位的位置。
因此咱們能夠這樣:若是咱們忽略有進位的位置後,再加上應該進位的位置,就是咱們的值。
1 ^ 3: 0010 =3; 忽略進位
加上進位:0010
0010 ^ 0010:0000 忽略進位
再加上進位:0100
0000^0100:0100=4二進制

0000&0100 爲-0,沒有須要繼續進位d3

直到 沒有應該進位的,最後結果即爲返回值。計算機

延伸:co

位運算符: d3

| 按位或運算background

& 按位與運算符位運算

^ 異或運算運算符

~取反運算

<< 左移運算符  將一個運算對象的各二進制所有進行左移若干位(左邊的二進制進行丟棄,右邊補0),操做數每左移一位,至關於x2

>>右移運算符    將一個運算對象的各二進制所有進行右移若干位(正數左補0,負數左補1,右邊丟棄),操做數每右移一位,至關於 /2

原碼 反碼 補碼

求一個負數的二進制: 1.該負數的正數的二進制取反,而後加1。記爲這個負數的二進制。

求 -14 >>2 的值

1. -14的二進制: 14的二進制取反,加一 獲得 1111 0010

2.右移2位: 1111 1100

3.1111 1100 的值爲: 1111 1100 原碼爲 【1111 1100 先取反 1000 0011 在加 1  1000 0100】1000 0100,數值爲-4

在計算機中 二進制使用 補碼錶示。 補碼的補碼即爲原碼

相關文章
相關標籤/搜索