日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

蓝桥杯:位运算

發(fā)布時(shí)間:2023/12/18 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 蓝桥杯:位运算 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一 ? ?? 位運(yùn)算的功能

1,可進(jìn)行判斷奇偶數(shù)

? ?? 對(duì)于y=x&1,如果x為偶數(shù),則x的二進(jìn)制的最后一位是1,此時(shí),y的值是1,如果x是奇數(shù),則其二進(jìn)制的最后一位是0,y的值是0;

2,獲取二進(jìn)制位是1還是0

java中有三種移位運(yùn)算符

<< ? ? ?: ? ? 左移運(yùn)算符,num << 1,相當(dāng)于num乘以2

>> ? ? ?: ? ? 右移運(yùn)算符,num >> 1,相當(dāng)于num除以2

>>> ? ?: ? ??無符號(hào)右移,忽略符號(hào)位,空位都以0補(bǔ)齊

package com.lanqiao; public class Binary {public static void main(String[] args){int num = 19;String binaryString = Integer.toBinaryString(num);System.out.println(binaryString);for (int i = 0; i < binaryString.getBytes().length; i++){System.out.print(get(num, i) + "\t");}}/*** @param num:要獲取二進(jìn)制值的數(shù)* @param index:倒數(shù)第一位為0,依次類推*/public static int get(int num, int index){return (num & (0x1 << index)) >> index;}}

3.變換兩個(gè)整數(shù)變量的值

4,不用判斷語句,求整數(shù)的絕對(duì)值

對(duì)于異或運(yùn)算:數(shù)值之間的異或運(yùn)算就是二進(jìn)制之間的運(yùn)算

?

異或運(yùn)算實(shí)例

?

實(shí)例2:

求二進(jìn)制中1的個(gè)數(shù)

源碼為

package com.lanqiao;import java.util.Scanner;/*** 求二進(jìn)制中1的個(gè)數(shù)*/ public class Binary2 {public static void main(String args[]){Scanner scanner=new Scanner(System.in);int n=scanner.nextInt();System.out.println(Integer.toString(n,2)); //方法一:將000001中的1不斷向左移位并與n相&,思想是每移動(dòng)一位,就可以確定n的該位是不是1,int count=0;//比對(duì)每一位for(int i=0;i<32;i++){if((n&(1<<i))==(1<<i)){count++;}}System.out.println(count);//方法二:讓n本身向右移位,從0位開始移動(dòng),再與1相&,如結(jié)果為1,則說明最后一位是1。count=0;for(int i=0;i<32;i++){if(((n>>>i)&1)==1){count++;}}System.out.println(count); //方法三:二進(jìn)制數(shù)每減一,再和該二進(jìn)制相&,結(jié)果就會(huì)使原二進(jìn)制數(shù)少一個(gè)低位的1,直到去掉所有的1,記下去的次數(shù)、//就是二進(jìn)制數(shù)中1的個(gè)數(shù)count=0;while (n!=0){n=(n-1)&n;count++;}System.out.println(count);}}

擴(kuò)展:

如果詢問:如何用一條語句判斷一個(gè)數(shù)是不是2的整數(shù)次方?

思路:如果二進(jìn)制位上只有一個(gè)1,則這個(gè)數(shù)就是二的整數(shù)次方

解法是利用上個(gè)問題的第三種解法

if((n&(n-1)==0)

?

?

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/chmusk/p/11078929.html

總結(jié)

以上是生活随笔為你收集整理的蓝桥杯:位运算的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。