国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

LeetCode---Number Complement

2019-11-08 01:50:03
字體:
來源:轉載
供稿:網友
1.關于~取反運算符~5 //輸出為-6先說一下正數取反+1后變成對應的負數例如6的二進制表示0000 0000 0000 0000 0000 0000 0000 0110取反 1111 1111 1111 1111 1111 1111 1111 1001+1 1111 1111 1111 1111 1111 1111 1010 //這就是-6在機器中的表現形式5的二進制表示 0000 0000 0000 0000 0000 0000 0000 0101~5 取反 1111 1111 1111 1111 1111 1111 1111 1010 //正好就是對應了-6的補碼形式2.對于輸入一個正整數,例如5,二進制101;相應位數取相反數為010,則應該輸出2
public class Solution {    public int findComplement(int num) {
//以num=7為例,按照題目要求 取對應位的相反數為000,結果輸出為0//第一步:取最高位        Integer.highestOneBit(num)//取num對應的二進制數的做左的1所對應的數,例如7二進制:  111(對于int類型數,省去前面28個0),取最高位為0100//第二步:向左移一位,并減1,生成num的二進制數相對應的“掩碼”(個人感覺有點類似于計算機網絡中的子網掩碼)        Integer.highestOneBit(num)<<1;0100向左移一位變成 1000        1000 減1 后變成 0111 //第三步:對于num取反 ,再 “與” 掩碼 得到最終結果num取反后(~num)得        1111 1111 1111 1111 1111 1111 1111 1000按照第二步得到的 掩碼      0000 0000 0000 0000 0000 0000 0000 0111相與之后的結果就是         0000 0000 0000 0000 0000 0000 0000 0000    }}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 汶上县| 迭部县| 浦城县| 安宁市| 白玉县| 贡觉县| 盐亭县| 江北区| 乌审旗| 乐平市| 阿鲁科尔沁旗| 贵港市| 巨野县| 海林市| 广河县| 凌云县| 和政县| 五大连池市| 赣榆县| 楚雄市| 德惠市| 雷波县| 西乌| 南召县| 芦山县| 泸定县| 平陆县| 威海市| 荥经县| 遂宁市| 岳阳县| 深圳市| 巴中市| 昌乐县| 东台市| 临潭县| 通化市| 长阳| 乌拉特前旗| 柯坪县| 松溪县|