摘要:位運算筆記加法異或運算求和與運算進位。減法將負數化為正,兩步完成取反做加法乘法的最后一位是,則結果每次循環后始終判斷最后一位,進位累加小學生算式做乘法除法不贅述,
Problem
Write a function that add two numbers A and B. You should not use + or any arithmetic operators.
ExampleGiven a=1 and b=2 return 3
ChallengeOf course you can just return a + b to get accepted. But Can you challenge not do it like that?
Note**位運算筆記
Bit Manipulation Notes:**
加法:
^異或運算:求和;
&與運算:進位。
減法:
將負數化為正:~i, +1,兩步完成取反
做加法
乘法:
a * b: if (b & 1) ans += a //b的最后一位是1,則結果+a
每次循環后a << 1, b >> 1; //b始終判斷最后一位,a進位累加(小學生算式做乘法)
除法:(不贅述,O(log n))
http://blog.csdn.net/ojshilu/article/details/11179911Solution
class Solution { public int aplusb(int a, int b) { // write your code here, try to do it without arithmetic operators. if (b == 0) return a; int sum = a^b; int carry = (a&b) << 1; return aplusb(sum, carry); } }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/65469.html
摘要:整個過程相當于,直接在和里去掉既是又是的。所以最后返回的,一定是只出現過一次的,而出現兩次的都在里,出現三次的都被消去了。 Single Number I Problem Given 2*n + 1 numbers, every numbers occurs twice except one, find it. Example Given [1,2,2,1,3,4,3], return...
摘要:這道題,給我解決了兩個疑問,還剩一個。首先是要用無符號右移運算符,其次是可以用一個不斷左移的二進制作為參照。 Problem Count how many 1 in binary representation of a 32-bit integer. Example Given 32, return 1 Given 5, return 2 Given 1023, return 9 Ch...
摘要:首先,分析溢出條件,設置符號位,然后取絕對值運算。原理如下,被除數,除數,設等于。如,,,所以商里必定有一個的次方存入,然后。然后被除數減去,繼續。此時,,循環結束。再舉一個例子看得懂的版本綜合一下 Problem Divide two integers without using multiplication, division and mod operator. If it is ...
摘要:細節上還要考慮正負號和整數位的越界情況。然后在循環內判斷,如果有重復出現的,或者中小數部分的長度超過,就說明該小數無法完全轉換。如果之前的正負號為,就在左邊加上負號。 Problem Given a (decimal - e.g. 3.72) number that is passed in as a string, return the binary representation t...
摘要:的二進制補碼就是個,因此這道題一定要考慮正負號的問題。然后去檢查的二進制包含多少個,方法是對的每一位除以取余。如果為,就說明那一位為,即和在那一位不同,需要進行轉換。每次取余之后,減小為二分之一,刪除已經檢查過的高位。 Problem Determine the number of bits required to flip if you want to convert integer...
閱讀 3952·2021-11-18 13:21
閱讀 4759·2021-09-27 14:01
閱讀 3110·2019-08-30 15:53
閱讀 2388·2019-08-30 15:43
閱讀 1730·2019-08-30 13:10
閱讀 1508·2019-08-29 18:39
閱讀 887·2019-08-29 15:05
閱讀 3341·2019-08-29 14:14