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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++ 11 深度学习(七)位运算常见操作

發布時間:2023/12/3 c/c++ 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++ 11 深度学习(七)位运算常见操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 取出數中任意k位置的二進制位是0還是1

n >> k & 1 原理:先把想要取出的位置移動到個位,1的二進制是 0001 , 進行與操作就可以提取出最后一位是0還是1;二進制是從右向左,由低到高,從0到7。

2. 右移操作 等于 n / 2^k , 左移操作 == n * 2 ^ k

3.取一個字節任意區間的十進制數,設置(輔助字節)全部位設置為0,根據想要獲取的目標字節的區間,設置(輔助字節二進制位)中的對應區間部分,全部換成1,然后轉為16進制。做&操作,按位與的結果就是目標自己區間的十進制表示形式。例如 0x67 & 0x1f = 7 ,01100111 & 00011111 (從0x67中取出該字節0-4后五位十進制表示)【注意:二進制的左邊是高位,右邊是低位,所以需要進行右移操作將需要獲取的部門與最低位重合】例如0x80二進制位1000 0000 取出10的十進制操作為0x80 & 0xC0 >> 6

4.兩個字節合并成一個16位short類型

unsigned short func = 0;func = func | data[7]; func = func << 8; func = func | data[8];

5.lowbit

作用:取出二進制最后的1,例如整數2的二進制位是0010那么會取出10的部分。

應用:統計有多少個1。

思路:使用給定整數減去其中的最后一位1。

#include <iostream> using namespace std;int lowbit(int x) {return x & -x; }int main() {int x;cin >> x;int res = 0;while (x) x -= lowbit(x), res++;cout << res << endl;return 0; }

?

?

總結

以上是生活随笔為你收集整理的C++ 11 深度学习(七)位运算常见操作的全部內容,希望文章能夠幫你解決所遇到的問題。

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