異或運算^簡述

異或運算:^

兩個變量之間異或運算時,其二進制位相同取0,不同取1.

示例:a=10? (0b 0000 1010)

? ? ? ? ? ?b=3? ? (0b 0000 0011)

? ? ? ? ? ?a^b=9(0b?0000 1001)

據此可以推算異或運算"^"有以下特性:

a^a=0? ? ? ? (0b 0000 0000):相同變量異或運算=0

a^0x00=10(0b 0000 1010):跟0位異或運算即不變

a^0x0f=5? ?(0b 0000 0101):跟1位異或運算即按位翻轉,此為^運算主要功能

進一步延伸,異或運算符可用于數據交換:

a=a^b=10^3=(0b 0000 1010)^(0b 0000 0011)=(0b 0000 1001)

b=b^a=? ? ? ? ? (0b 0000 0011)^(0b 0000 1001)=(0b 0000 1010)

a=a^b? ? ? ? ? ? (0b 0000 1001)^(0b 0000 1010)=(0b 0000 0011)

用這個方式寫冒泡排序:

#include <stdio.h>int main(){int arr[]={21,12,11,10,70,21};int len=sizeof(arr)/sizeof(int); for(int i=len-1;i>0;i--){for(int k=0;k<i;k++){if(arr[k]>arr[k+1]){arr[k]=arr[k]^arr[k+1];arr[k+1]=arr[k+1]^arr[k];arr[k]=arr[k]^arr[k+1];}}}for(int j=0;j<len;j++){printf("arr[%d]=%d\n",j,arr[j]);}return 0;
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/536755.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/536755.shtml
英文地址,請注明出處:http://en.pswp.cn/news/536755.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python使用apscheduler定時任務,固定周幾運行程序

在add_job中添加參數day_of_week即可&#xff1a; day_of_week "0"表示&#xff1a;只有周一運行day_of_week "0-4"表示&#xff1a;周一到周五運行day_of_week "0,1,2"表示&#xff1a;周一二三運行 示例程序 from datetime import datet…

IDEA基本設置

本博客適用于純新手小白&#xff0c;或者剛下載IDEA想要優化開發添加配置的讀者。 基礎設置 滾輪調整字體大小 打開 IntelliJ IDEA。 轉到菜單欄中的 “File” -> “Settings”&#xff08;Windows/Linux&#xff09;或 “IntelliJ IDEA” -> “Preferences”&#xff…

2024年 Kubernetes 四大趨勢預測

Kubernetes 在生產環境中的復雜性已經成為常態&#xff0c;在2023年這個平臺工程盛行的時代&#xff0c;容器管理的最大亮點可能在于其靈活性&#xff0c;然而在運維政策和治理等方面仍然存在諸多挑戰。Kubernetes 最大的吸引力之一在于其可擴展性和跨環境的廣泛用例。但是&…

CTF show 71

CTF show 71 在源碼中可以看到程序把緩沖區內容全部替換成了問號 ?? ob_get_contents函數把緩沖區內容讀到以后賦值給了變量s&#xff0c;類型是字符串。 ob_end_clean()函數清空當前緩沖區并且關閉緩沖區 ?? 所以展示的結果中全是問號。所以我們需要在讀取到文件以后…

計算機網絡基礎知識分享

計算機網絡基礎知識分享 發送一個http請求&#xff0c;從客戶端到服務器端&#xff0c;都經歷了什么? **Ⅰ&#xff0c;瀏覽器生成消息 ** &#xff08;1&#xff09;瀏覽器輸入網址 我們的探索之旅從在瀏覽器中輸入網址開始&#xff0c;網址&#xff0c;準確來說應該叫 UR…

JVM內存結構Java內存模型Java對象模型

悟空老師思維導圖&#xff1a;https://naotu.baidu.com/file/60a0bdcaca7c6b92fcc5f796fe6f6bc9https://naotu.baidu.com/file/60a0bdcaca7c6b92fcc5f796fe6f6bc9 1.JVM內存結構&&Java內存模型&&Java對象模型 1.1.JVM內存結構 1.2.Java對象模型 Java對象模型…

Isaac Sim urdf文件導入

本教程展示如何在 Omniverse Isaac Sim 中導入 urdf 一. 使用內置插件導入urdf 安裝urdf 插件 方法是轉到“window”->“Extensions” 搜索框中輸入urdf, 并啟用 通過轉至Isaac Utils -> Workflows -> URDF Importer菜單來訪問 urdf 擴展。 表格中的 1,2,3 對應著…

問題回復:什么是 Java 中的 Lambda 表達式?有什么應用場景?

Lambda 表達式是 Java 8 引入的一項重要特性&#xff0c;它允許在代碼中以更簡潔的方式表達匿名函數&#xff08;也稱為閉包&#xff09;。Lambda 表達式的引入是為了提供一種更簡單、更便捷的方式來寫匿名內部類。 Lambda 表達式的語法如下&#xff1a; (parameters) -> …

C語言例題3

1.設x、y、z和k都是int型變量&#xff0c;則執行表達式&#xff1a;x&#xff08;y4&#xff0c;z16&#xff0c;k32&#xff09;后&#xff0c;x的值為&#xff08;32&#xff09;&#xff1b; x(y4,z16,k32),x的值為32 理解逗號運算符在c語言中的工作方式&#xff1a;逗號運算…

Visual Basic的故事

Visual Basic&#xff08;VB&#xff09;是一種由Microsoft開發的面向對象的事件驅動編程語言。VB的故事始于上世紀90年代初&#xff0c;它在Windows平臺上的成功對于圖形用戶界面&#xff08;GUI&#xff09;應用程序的開發產生了深遠的影響。以下是關于VB發展過程和相關開發者…

VR全景展示的功能有哪些?適合用于哪些領域?

現如今&#xff0c;VR全景展示技術已經逐漸融入了我們的日常生活中&#xff0c;可能大部分人都還沒有意識到VR全景是如何應用的&#xff0c;但其實VR全景針對多個行業的垂直領域都有一定的落地使用。在互聯網高速發展的今天&#xff0c;多媒體所包含的種類也越來越多&#xff0…

【美團大數據面試】大數據面試題附答案

目錄 1.hdfs讀寫流程解析 2.hdfs副本機制&#xff0c;三副本原因&#xff0c;副本存放策略 3.hdfs容錯機制原理 4.MapReduce執行流程詳解 5.spark和mr的區別 6.TopN求法&#xff0c;大數據量無法完全寫入內存解決方案&#xff0c;MapReduce實現方法 7.spark部署、調度原…

SpringAOP復習

SpringAOP AOP為Aspect Oriented Programming的縮寫&#xff0c;意為&#xff1a;面向切面編程。他是一種可以在不修改原來核心代碼的情況俠給程序動態統一進行增強的一種技術 SpringAOP&#xff1a;批量對Spring容器中的bean方法做增強&#xff0c;并且這種增強不會與原來方…

Odoo16 實用功能之在Form視圖的各個部位加入按鈕

目錄 1、 如何在form視圖中的頭部加上按鈕 2、如何在form視圖中的身體加上按鈕 3、如何在notebook標簽中加入按鈕 1、 如何在form視圖中的頭部加上按鈕 以CRM中的渠道form視圖為例子介紹&#xff08;實現紅框中的效果&#xff09; 直接在<header>標簽里加入按鈕即可 …

樹莓派4B搭建開源NAS系統openmediavault

目錄 搭建過程使用鏡像準備硬件準備軟件賬號信息制作系統盤首次啟動配置獲取樹莓派IP地址 ssh登錄到樹莓派上登錄到openmediavualt連接到wifi 搭建過程 搭建過程參考鏈接兩篇文章,已經搭建完畢.期間遇到一些坑,為了方便大家,我把搭建好的鏡像和使用到的工具放在百度網盤共享了…

谷歌Gemini中文疑似套殼百度文心一言

關注盧松松&#xff0c;會經常給你分享一些我的經驗和觀點。 哈哈哈&#xff0c;沒想到谷歌 Gemini 中文語言竟然來自百度的文心一言。 最近知名博主闌夕發微博稱&#xff1a;在 Poe 平臺上對 Gemini-Pro 進行了一個測試。問它 " 你是誰 "&#xff0c;Gemini-Pro 上…

HashSet 和HashMap的區別、優缺點、使用場景

HashSet和HashMap是Java集合框架中的兩個常用類&#xff0c;它們都用于存儲和管理數據&#xff0c;但在使用方式、功能和性能上有很大的區別。 HashSet和HashMap的區別 區別一&#xff1a;用途不同 HashSet&#xff1a;HashSet是一個基于哈希表的集合&#xff0c;用于存儲不…

常用兩種Linux命令生成器

在Linux中&#xff0c;可以使用多種命令來生成隨機密碼。以下是其中兩種常用的命令&#xff1a; 1.pwgen&#xff1a;這個命令可以生成隨機、無意義的但容易發音的密碼。生成的密碼可以只包含小寫字母、大小寫混合或數字。大寫字母和數字會以一種便于記憶的方式放置&#xff0…

Java_Stream流

一、JDK8新特性&#xff08;Stream流&#xff09; 接下來學習一個全新的知識&#xff0c;叫做Stream流&#xff08;也叫Stream API&#xff09;。它是從JDK8以后才有的一個新特性&#xff0c;是專業用于對集合或者數組進行便捷操作的。有多方便呢&#xff1f;我們用一個案例體…

【OAuth2】授權框架的四種授權方式詳解

&#x1f389;&#x1f389;歡迎來到我的CSDN主頁&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是Java方文山&#xff0c;一個在CSDN分享筆記的博主。&#x1f4da;&#x1f4da; &#x1f31f;推薦給大家我的專欄《OAuth 2》。&#x1f3af;&#x1f3af; &#x1…