摘要:在網上看到如何利用異或來實現兩個變量的交換,感覺很方便,但是理解起來優點難度,做個筆記,加深理解。首先先對異或有個了解相同的異或之后則為,不相同的則為。則這個式子的返回值是與相同與不相同的標志。
在網上看到如何利用異或來實現兩個變量的交換,感覺很方便,但是理解起來優點難度,做個筆記,加深理解。
首先先對異或有個了解:
相同的異或之后則為0,不相同的則為1。
a:1000 1010,
b:1000 1101
則a=a^b 這個式子的返回值是a與b相同與不相同的標志。
上面的運算結果是: 0000 0111
再看第二個式子:
b = a^b 由于此時的a不是代表原來的a,此時是標志而已,這個標志與b做異或運算,若a第i位為0,則新的b的i位則與右邊的(原來的)b,是相同的,而由第一個式子可知,若第i位為0,則原來的a與原來的b是相同的,由相等的傳遞性可知新得到的b的第i位與原來的a是一致的。
這只是一方面,一個數里面肯定有1又有0,當第i位為1的時候,說明新得到的b的第i位與原來的b的第i位是相反的,同樣的思路,類比的第一個式子,當第i位為1的時候,則說明原a與原b在第i位是不同的,此時對于b來說,敵人的敵人就是我的朋友,所以它也是和原來的b是相同的,這樣,新得到的b就是原來的a了。
上面(第二個)將a的值賦給了b,那么如何將b的值賦值給a呢
使用同樣的式子
a = a^b 注意此時的a還是代表標志位,而此時的b則代表a了,上面的b與標志位相與得到a,則可想而知,a與標志位相與則會得到b,很容易理解。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/72423.html
摘要:我會使用一個先進的神經網絡和機器學習框架這個框架,并向你們展示如何用這個框架來實現光學字符辨識,模擬退火法,遺傳算法和神經網絡。歐氏距離我們從歐氏距離開始談起,歐氏距離是一個非常簡單的概念,適用于不同的機器學習技術。 歡迎大家前往云+社區,獲取更多騰訊海量技術實踐干貨哦~ 下載 heaton-javascript-ml.zip - 45.1 KB 基本介紹 在本文中,你會對如何使用Ja...
摘要:基本數據類型布爾類型或,占用位。強制類型轉換強制類型轉換的語法格式是,強制類型轉換的運算符是圓括號。無符號右移運算符。對于低于類型如和的操作數總是先自動類型轉換為類型后再移位。 注釋 單行注釋//......多行注釋/ .../文檔注釋/*.../ 文檔注釋位于注釋內容上一行 標識符和關鍵字 分隔符 分號:作為語句的分隔,每個Java語句必須使用分號作為結尾。花括號:定義一個代碼...
摘要:到目前為止,使用越來越廣泛,不光光只是它強大的生成技術,而且它能夠與進行很好的集成。注意使用數字范圍來定義集合時無需使用方括號數字范圍也支持反遞增的數字范圍如對象對象使用花括號包括中的對之間以英文冒號分隔,多組對之間以英文逗號分隔。 Freemarker的介紹 ??Freemarker 是一款模板引擎,是一種基于模版生成靜態文件的通用 工具,它是為程序員提供的一個開發包,或者說是一個類...
閱讀 2800·2021-11-22 14:44
閱讀 541·2021-11-22 12:00
閱讀 3683·2019-08-30 15:54
閱讀 1570·2019-08-29 17:15
閱讀 1898·2019-08-29 13:50
閱讀 1107·2019-08-29 13:17
閱讀 3513·2019-08-29 13:05
閱讀 1181·2019-08-29 11:31