個人感覺最優的按位翻轉資料演算法
unsigned char ReverseBits(unsigned char ch)
- {
- ch = (ch & 0x55) << 1 | (ch >> 1) & 0x55;
- ch = (ch & 0x33) << 2 | (ch >> 2) & 0x33;
- ch = (ch & 0x0F) << 4 | (ch >> 4) & 0x0F;
- return ch;
- }
0x55 -> 01010101 B
0x33 -> 00110011 B
0x0F -> 00001111 B
從中可以看出,是先將相連的兩bits 對調--實現相連2 bits資料翻轉;接著兩個相連的“2 bits組合”對調--實現相連4 bits資料翻轉;再下來就是將兩個相連的“4 bits組合”對調--即可以完成對一個字元8 bits的翻轉。
個人理解:針對16bit和32位及以上位數的資料交換,延續此思路即可,對應的掩碼設定為0x00FF和0x0000FFFF即可。原部落格:https://blog.csdn.net/maliqiqaz/article/details/38408473
相關推薦
個人感覺最優的按位翻轉資料演算法
unsigned char ReverseBits(unsigned char ch){ ch = (ch & 0x55) << 1 | (ch >> 1) & 0x55; ch = (ch & 0x
二進位制按位翻轉
今天看到python中講到按位翻轉~x=-(x+1),其原理應該是二進位制的翻轉,網上查到一段解釋聽清楚的。 簡單的說例如1用32位二進位制儲存的結果是 00000000000000000000000000000001 這是二進位制,不是十進位制哦,那麼求反,或者說按位求
演算法訓練-按位列印資料
問題描述 編寫程式,實現從鍵盤輸入一個正整數,輸出該正整數的位數及每位數 輸出樣例 1234 輸出樣例 第1位是1 第2位是2 第
凸多邊形最優三角剖分(演算法設計:動態規劃)
一、動態規劃 和分治法類似,把原問題劃分成若干個子問題,不同的是,分治法(子問題間互相獨立),動態規劃(子問題不獨立) 動態規劃: (1)找出最優解的性質,刻畫其結構特徵 (2)遞迴地定義最優值
牛客網 短最優升級路徑 【Dijkstra演算法】+【路徑記錄】
短最優升級路徑 題目描述:遊戲網站提供若干升級補丁,每個補丁大小不一,玩家要升級到最新版,如何選擇下載哪些補丁下載量最小。 輸入: 第一行輸入 第一個數為使用者版本 第二個數為最新版本,空格分開 接著輸入N行補丁資料
最優裝載問題_貪心演算法
有一批集裝箱要裝上一艘載重量為c的輪船。其中集裝箱i的重量為Wi。最優裝載問題要求確定在裝載體積不受限制的情況下,將盡可能多的集裝箱裝上輪船。 問題可以描述為: 該問題可以用貪心演算法求解,要使用貪心演算法解決問題,我們必須先證明:(1)該問題具備
COPY 一種接近最優的導航網格生成演算法以及基於導航網格的尋路演算法
提出背景: 長距離尋路會出現掉幀現象,為了提高尋路速度,併為3D環境中的尋路方案提供基礎演算法實現。 目前狀況: 由於3D遊戲對幀率要求很高,而在遊戲中進行一次長距離的尋路可能要花費8-10幀的時間,在地圖複雜的情況下尋路時間甚至可能會更嚴重,而在這段時間,渲染迴圈會暫停
連續變數最優分箱--基於CART演算法
關於變數分箱主要分為兩大類:有監督型和無監督型對應的分箱方法:A. 無監督:(1) 等寬 (2) 等頻 (3) 聚類B. 有監督:(1) 卡方分箱法(ChiMerge) (2) ID3、C4.5、CART等單變數決策樹演算法 (3) 信用評分建模的IV最大化分箱 等本篇使用
校驗一個奇偶數最高效的方式:按位與&
tro pan font 高效 位與 com 操作數 按位與 blog 校驗一個奇偶數最高效的方式: 按位與:操作數都是1結果才是1,否則是0 判斷一個數是奇數還是偶數: 和1與 結果是0則為偶數 結果為1則為奇數. 校驗一個奇偶數最高效的方式:
mysql按時間段統計資料 欄位為時間戳
SELECT FROM_UNIXTIME(create_time,'%Y%u') weeks,COUNT(id) COUNT FROM role GROUP BY weeks;
Java一組資料,滿足數量和求和的最優解
記錄一下,方便以後使用: 有一件物品是240元,需要所有人一起湊錢購買,求最優解:1、第一優先的是人數,湊夠錢買物品的人的組合裡,人數最少的2、第二優先的是價格,要求超過240,但是離240最接近的一組,因為從大到小排列一定能得到人數最少的,但是可能會比目標數額大很多,導致找零太多 最後要求
程式設計師程式碼面試指南:IT名企演算法與資料結構題目最優解
網站 更多書籍點選進入>> CiCi島 下載 電子版僅供預覽及學習交流使用,下載後請24小時內刪除,支援正版,喜歡的請購買正版書籍 電子書下載(皮皮雲盤-點選“普通下載”) 購買正版 封頁 編輯推薦 如何在IT名企的面試中脫穎
#資料結構與演算法學習筆記#劍指Offer29:整數中1出現的次數 + 分段思想/按位考慮 + 測試用例(Java、C/C++)
2018.10.5 感受到開學之後工作和課業的雙重壓力,加上近段時間自己出了點小事故,因此斷更了許久。沒事,繼續。 這道題有兩種複雜度為的演算法。 方法1:遞迴(分段思想)。 所有數字出現1的個數 = 每一段數字中出現1的個數之和 1. 對於輸出的數字n,其最高位為
當今世界最NB的25位大資料科學家
引言 在大資料技術飛速發展的今天,誰才是我們大資料科研與工業界中最有威望的科學家呢?下面我們來進行梳理,共羅列了25位當今世界,無論是在學術與工業界都產生巨大影響的資料科學家(Data Scientists)。他(她)們推動了整個領域的發展,毫無疑問,無論是在學術界還是還工業界,他(她)們都是一座座山頭式的
雲網融合解決方案|快資料雲管平臺(CMP)最優解決方案
雲端計算已經成為國內網際網路和IT巨頭的標配業務,以阿里、騰訊等為代表的網際網路巨頭,和華為、浪潮等代表的IT巨頭,都將雲端計算列為企業未來五到十年的戰略級業務。同時,市場需求發展和雲供應鏈的發展是相匹配的,中國雲端計算規模已連續多年呈指數級上升趨勢,工信部去年在《雲計算髮展
資料結構之哈夫曼樹(最優二叉樹)
文字壓縮是一種非常重要的技術,自然涉及到了壓縮編碼。哈夫曼編碼——一種最基本的壓縮編碼方法 幾個術語: 1、路徑:樹中兩個節點之間的分支序列 2、路徑長度:路徑上的分支數目
聚類演算法 sklearn k_means (返回一維資料的最優聚類)
from sklearn.cluster import KMeans import numpy import collections import pandas from sklearn import
對於多複雜資料的插值最優方法---拉格朗日插值法。
在數值分析中,拉格朗日插值法是以法國十八世紀數學家約瑟夫·拉格朗日命名的一種多項式插值方法。許多實際問題中都用函式來表示某種內在聯絡或規律,而不少函式都只能通過實驗和觀測來了解。如對實踐
《程式設計師程式碼面試指南 IT名企演算法與資料結構題目最優解》左程雲著 pdf
第1章棧和佇列 1 設計一個有getMin功能的棧(士★☆☆☆) 1 由兩個棧組成的佇列(尉★★☆☆) 5 如何僅用遞迴函式和棧操作逆序一個棧(尉★★☆☆) 8 貓狗佇列(士★☆☆☆)10 用一個棧實現另一個棧的排序(士★☆☆☆) 13 用棧來求解漢諾塔問題(校★★★☆) 14 生成視窗最大值陣列(尉★★☆
串列埠高效能處理串列埠資料,按位讀取處理案例
在現在的工控或者家用裝置通訊專案中,用到很多串列埠或者類串列埠通訊協議,其中 很多協議需要讀取操作,在讀取中為了防止阻塞,提高處理效能,縮短處理時間經常用到 select 函式來 讀取串列埠資料,select 是linux 真是個 神器啊,監控某一個檔案或者裝置,當有緩衝過來即可處理,而為了試用不同協議的長短