[邏輯運算] 利用互斥進行兩數互換

文章推薦指數: 80 %
投票人數:10人

II. 程式. 以往的做法會宣告一個temp 變數來當互換的暫存如果利用XOR 寫法就變的非常簡單,只要三行就完成互換的動作 ( ^ 為C#語法中的XOR 運算子). 2009年12月26日 [邏輯運算]利用互斥進行兩數互換 今天坎尼去上課老師講了一題很有趣的題目 所以回到家坎尼就順手試驗了一下 I.XOR(exclusiveOR)XOR是邏輯運算子之一,定義為:當兩數的值不同才為true,相同則為false 其他相關說明可以參考維基百科:XOR II.程式以往的做法會宣告一個temp變數來當互換的暫存 如果利用XOR寫法就變的非常簡單,只要三行就完成互換的動作 (^為C#語法中的XOR運算子) a=a^b; b=a^b; a=a^b; 程式執行結果 為什麼會這樣呢?看了下面的數學推導公式就一目瞭然啦 主要是用到以下幾個特性: XOR可交換 任何數XOR本身會得到0 任何數XOR0會得到本身 偷偷補充一個:任何數XOR1會得到本身的補數 III.小結數學又令原本千篇一律的寫法開創了另一條路呢^^ 參考網頁: ^運算子(C#參考) 維基百科:XOR By 坎尼 - 12月26,2009 以電子郵件傳送這篇文章BlogThis!分享至Twitter分享至Facebook分享到Pinterest 標籤: C#.NET 8則留言: Unknown 提到... 補充一下,最近在看Perl,其中的【串列】也可以直接進行兩數互換,不需要中間變數,不過不知道內部是怎樣實作的:phttp://news.ols3.net/techdoc/old/perl_intro/x420.html:串列可用來快速交換變數內容,不需要中間暫存變數: 27/12/0920:55 坎尼 提到... 說不定就是內部把swap的code寫好XDswap這東西在資構上很常應用,應該語言都有內建方法(只是坎尼才疏學淺不曉得XD 27/12/0921:04 Unknown 提到... http://www.google.com.tw/search?rlz=1C1GGLS_zh-TWTW352TW353&sourceid=chrome&ie=UTF-8&q=XOR+%E5%85%A9%E6%95%B8%E4%BA%A4%E6%8F%9B,第一名ㄟ!可惡我原本也想寫這個題目的... 1/2/1016:30 Unknown 提到... 順便補充Perl用串列做兩數交換的語法:($a,$b)=($b,$a);超級簡潔XD 1/2/1016:31 坎尼 提到... 大概是這個東西太古老沒人研究所以才那麼容易衝PageRank吧XD那你可以寫一篇Perl的...(不過互斥是邏輯上的規則,其實用什麼寫應該都是一樣?) 1/2/1016:38 Unknown 提到... 今天發現Perl的串列還有更強大的用法:($a,$b,$c,$d)=($b,$a,$d,$c);這樣就完成ab兩變數的值交換、cd兩變數的值交換,真是輕鬆阿XD 2/2/1020:35 坎尼 提到... python也有類似perl的語法兩數互換a,b=b,an數互換a,b,c,d=d,c,b,a 2/3/1015:57 Unknown 提到... 這樣作真的是挺直覺的阿,也節省時間,不錯不錯~ 2/3/1022:01 張貼留言 較新的文章 較舊的文章 首頁 訂閱: 張貼留言(Atom) GoogleSpreadsheet裡用規則運算式 最近因為工作關係,遇到要用GoogleForm及GoogleSheet所以研究了GoogleSheet裡的一些function怎麼用首先,分享一下如何在GoogleSheet裡用規則運算:D [邏輯運算]利用互斥進行兩數互換 今天坎尼去上課老師講了一題很有趣的題目所以回到家坎尼就順手試驗了一下I.XOR(exclusiveOR)XOR是邏輯運算子之一,定義為:當兩數的值不同才為true,相同則為false其他相關說明可以參考維基百科:XORII.程式以往的做法會宣... 在Windows7用FileZillaServer架FTP站要注意的防火牆設定 昨天被問到在Windows7上如何用FileZillaServer架FTP站,其實架站步驟以及軟體安裝之後所需的設定並不複雜,重灌狂人就寫過一篇非常詳細的文章「[免費]如何用FileZillaServer架FTP站?」。

但是在「四、取得自己電腦... ExcelVBA作矩陣相乘運算 雖然到最後你還是沒留下你的名字...今天就來介紹一下,如何用程式撰寫多維矩陣乘法運算首先要了解一下矩陣乘法的計算方式(m1xn1)*(m2xn2)結果會是(m1xn2)的矩陣上例中的n1=m2矩陣乘法位置互換結果就會不同(大家可以直接... 搜尋此網誌 首頁 著作人 Unknown 坎尼 其他文章 ►  2015 (1) ►  八月2015 (1) ►  2013 (6) ►  十一月2013 (1) ►  十月2013 (2) ►  九月2013 (2) ►  八月2013 (1) ►  2012 (15) ►  九月2012 (1) ►  八月2012 (2) ►  七月2012 (4) ►  五月2012 (1) ►  四月2012 (1) ►  三月2012 (4) ►  二月2012 (2) ►  2011 (20) ►  十二月2011 (3) ►  十一月2011 (1) ►  八月2011 (1) ►  七月2011 (2) ►  四月2011 (2) ►  二月2011 (5) ►  一月2011 (6) ►  2010 (72) ►  十二月2010 (7) ►  九月2010 (1) ►  八月2010 (11) ►  七月2010 (4) ►  六月2010 (8) ►  五月2010 (6) ►  四月2010 (3) ►  三月2010 (13) ►  二月2010 (9) ►  一月2010 (10) ▼  2009 (80) ▼  十二月2009 (5) [C#]算術運算子的先後順序 [邏輯運算]利用互斥進行兩數互換 [Tips]如何放大VisualStudio中的字型 [Tips]匯入ItemTemplate到其他機器上 [Tips]ItemTemplate讓你省去copy/paste的時間 ►  十一月2009 (3) ►  十月2009 (3) ►  九月2009 (3) ►  八月2009 (7) ►  七月2009 (5) ►  六月2009 (6) ►  五月2009 (4) ►  四月2009 (12) ►  三月2009 (9) ►  二月2009 (15) ►  一月2009 (8) ►  2008 (75) ►  十二月2008 (10) ►  十一月2008 (5) ►  十月2008 (10) ►  九月2008 (15) ►  八月2008 (8) ►  七月2008 (9) ►  六月2008 (18) 標籤 .NET3.5 .NETCompactFramework .NETLanguageF# .NETUpgrade 口試 公益 心得 主頁 民國年 合約 行動版面手機版面BloggerTouch 改變滑鼠位置 求職 面試 基礎數學 專案管理 帳號管理 排程 創新 智慧畫居住空間展示中心 匯入Excel 匯出Excel 資料剖析 跨頁傳值 鼠標位置 ADO.NET AgileProcess AP.C#.NET apache Apple ASP.NET assetmanagement AWStats beckyemailclient BetterAWStats broadcom buggoal C#.NET ChangeMousePosition ChartControl Chat CloudComputing CodeSnippets coding COMVB6ProgID ContentPlaceholder ControlID ConvertZ Crash CrossPagePostback DataSource DataSourceParameter DataSourceID DifferentContentPlaceholder Distributedfilesystem DNN DOM DotNET encoding ErrorHandling ErrorMessage Excel ExcelVBA Exchange Fabrik facebook feedly filezillaserver FireFox FireGestures FormView FreeTalk ftp GAME google GoogleChrome GoogleForm GoogleSpreadsheet grep Hadoop HP-UXNTP HTML IBM ie8 IIS import/export InfomationSecurity infoQ InformationSecurity iphone ItemTemplate itunes javascript JAWStats joomla jpgraph jQuery LINQ linux living3.0 mac macro MasterPage Microsoft MSDTC multi-thread MVC MySQL notepad++ NPOI ObjectDataSource openfind Other outlook Parameters passwd perl php phpMyAdmin phpMyBackupPro pMBP PocketPC Programming PYTHON QA RAID Readability REDHAT RedHatreboothang regex regexp RelationalDatabase rename routine Sandcastle scheduledbackup Scripts Scrum SecureCRT SecurityDevelopmentLifecycleSDL shellscript SHFB SIKULI Silverlight SilverlightMSRIA smtpverification Solaris SQL SQLServer SSMSE sudo Surface TaiwanCalendar tar TechEd2008 ThreadLocalStorage timemachine TimeManagement Tips TLS Tools UIDesignPerformance unix UserControl vi virtualization VisualStudio vs2005 vs2008 vs2010 WCG WEBPI WebUserControl Widget win7 win7firewall windows WindowsMobile windowsNICbonding windowsSharePointService word xargs Yahoomail Yahoomailcontact 檢舉濫用情形 CreatveCommons 本站文章歡迎以"註明來源"方式轉載,或以"相同方式"分享:) GoogleAnalytics(AsyncVersion) 參訪人數



請為這篇文章評分?