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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

myBitSet

發布時間:2024/9/3 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 myBitSet 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#include <iostream> using namespace std;//得到x二進制第i位的值(二進制最右邊為第0位,i從0開始) int getBit(int x,int i) {return (x>>i)&1; } //將x二進制第i位的值為置為val(i從0開始) void setBit(int &x,int i,int val) {if(val){x |= (1<<i);}else{x &= ~(1<<i);} } //翻轉第i位(i從0開始) void flipBit(int &x,int i) {x ^= (1<<i); } //用^交換x,y void mySwap(int &x,int &y) {x = x ^ y;y = x ^ y;x = x ^ y; } /*x y 交換值:x = x ^ y; //1y = x ^ y; //2x = x ^ y; //3原理:^運算滿足交換律,相同兩個數的異或值為0,0與任何一個數異或結果為它本身將1帶入2:y = x ^ y ^ y; // y = x將1的結果y = x和2帶入3:x = x ^ y ^ x = x ^ x ^ y = y; // x = y*/ int main() {int now = 13;int tt = now;string s;while(tt){char c = (tt&1) + 48;s = c + s;tt >>= 1;}cout<<s<<endl;for(int i = 0; i < 4; i++){cout<<i<<":"<<getBit(now,i)<<endl;}/*int y = 0;flipBit(y,2);cout<<y<<endl;flipBit(y,2);for(int i = 1; i <= 10; i++){setBit(y,i-1,1);//cout<<y<<endl;cout<<getBit(y,i-1)<<endl;setBit(y,i-1,0);cout<<getBit(y,i-1)<<endl;} */int x;cin>>x;int b[50];int k = 0;int t = x;while(t){b[k++] = t & 1;t >>= 1;}/*for(int i = k - 1; i >= 0; i--){cout<<b[i];}cout<<endl;*/for(int i = 0,j = k - 1; i < j; i++,j--){mySwap(b[i],b[j]);}//x的二進制for(int i = 0; i < k; i++){cout<<b[i];}cout<<endl;//gitBitfor(int i = 0; i < k; i++){cout<<getBit(x,i)<<endl;}return 0; }

總結

以上是生活随笔為你收集整理的myBitSet的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。