91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JavaScript位運算異或怎么使用

發布時間:2022-03-17 15:54:37 來源:億速云 閱讀:433 作者:iii 欄目:大數據

本篇內容主要講解“JavaScript位運算異或怎么使用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“JavaScript位運算異或怎么使用”吧!

算法:

在位運算中,運用最多的便是異或操作^,規則如下所示:

1.a^a = 0 ,a^0 = a,2.a^b^a= a^a^b = 0^b = b備注:下面的兩個題目是單純使用異或操作的題目,一種是最基本的異或操作,一種是稍作轉換就可以完成的變形題目。

題目1: 異或的基本使用

代碼實現:

func singleNumber(nums []int) int {    if len(nums) == 0 {        return 0    }    res := 0    for _,v := range nums{        res ^= v    }    return res}// 算法:// 利用位運算,異或的使用,a^a = 0 ,a^0 = a,// 因為題目是兩個數,和一個數,屬于^的完美使用范疇,// 由公式:a^b^a= a^a^b = 0^b = b,可以直接將代碼取異或操作,//結果就是那個個數為1的數

題目2: 異或的變形題目

代碼實現:

func singleNumber(nums []int) []int {    if len(nums) == 0 {        return nil    }    // step1:抵消掉數量為2的數    tmp:= 0    for _,v:=range nums{        tmp ^= v    }    // step2:找出來第一個為1的bit位    i:=0    for {       n := 1<<i        if tmp&n != 0 {           break       }       i++    }    // step3:按照bit=1來將數組分成兩組,然后分別計算這兩組的異或值,也就是這兩個數    a,b := 0,0    test := 1<<i    for _,n := range nums {        if n & test == 0{            a^=n        } else {            b^=n        }    }    return []int{a,b}}// 算法:屬于異或的延伸題目// 因為有兩個數字個數是1,其他都是兩個,所以要使用異或,// 大體思路是將包含兩個一個的數組變成2個分別包含一個個數是1的數組里面,將題目轉換成題目1的做法// 算法分為三步: // step1:通過異或,最終獲取這兩個數字的異或結果a^b=0xiiiii, // 這里只要是bit!=0,就說明這一個bit位在a,b兩個數中不相同,我們就從低位開始找,找到第一個為1的bit位即可。// step2:找到這個bit位置// step3:遍歷數組,將數組中該bit==1的元素放入數組A,bit==0的放入數組B,// 分別計算A,B就可以得到這兩個數。

到此,相信大家對“JavaScript位運算異或怎么使用”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

荆州市| 临湘市| 东宁县| 新巴尔虎左旗| 连江县| 高清| 虎林市| 深圳市| 皮山县| 东海县| 长沙县| 安龙县| 米林县| 西宁市| 普兰县| 郯城县| 历史| 南昌县| 江西省| 宣化县| 楚雄市| 兴隆县| 上杭县| 贵州省| 清水县| 普兰店市| 石楼县| 蒙阴县| 孝昌县| 宁乡县| 桃源县| 富平县| 浦北县| 天等县| 开化县| 新巴尔虎右旗| 巫山县| 弋阳县| 肇源县| 安泽县| 岑巩县|