總結位移運算的規律以及一些使用場景

2021-10-05 11:39:42 字數 1422 閱讀 3675

位移運算:

正整數 << n  ;  左移運算 相當於 正整數*2的n次冪

正整數 >> n ; 右移運算 相當於 正整數/2的n次冪

負整數 << n ; 左移運算 相當於 負整數*2的n次冪

負整數 >> n ; 右移運算 相當於 負整數/2的n次冪,如果有餘數則結果再-1,除數大於被除數,結果等於-1

我們在閱讀原始碼的時候會看到有些值明明可以直接賦值,但是卻被寫成了如:1 << 4 這樣的格式,其目的只是為了在當們用到這個數字的時候需要注意他是2的冪次方。hashmap的初始化時,如果我們不設定其初容量大小,那麼會看到原始碼中會幫我們設定乙個預設大小:1 << 4,因為做位移運算會消耗少量資源,所以我們初始化的時候盡量直接設定大小,避免一次運算。

將乙個二進位制數列中的某一項設定成1或0的方法:

舉例:現在有乙個十進位制數7,轉換成二進位制數列後為:00000111

那麼我想讓第3位上的數設定成0怎麼做?

方案如下:

public

static

void

main

(string[

] args)

/*** 將指定數字對應二進位制數的指定位置變更後返回結果

* permit 為true設定為1,否則設定為0

* @param access 接收的二進位制數

* @param index 修改位置

* @param permit 修改為

* @return

*/private

int setbit (

int access,

int index,

boolean permit)

else

return access;

}

以上方案可以用在許可權組設計方案,還有業務中的多選按鈕儲存方案一. 十進位制轉換成二進位制、八進位制、十六進製制

方法:按權展開求和。

二. 二進位制、八進位制、十六進製制轉換成十進位制

方法:整數部分採用除基數取餘法;小數部分採用乘基數取整法。

三. 二進位制轉換為八進位制、十六進製制

方法:以小數點為中心,分別向左右分組,不足的用零補充,例如:八進位制是3位一組,十六進製制是4位一組。

IT領域的一些規律

it產業相對於傳統工業,更容易出現一家獨大 贏者通吃的產業格局 70,第一,行業的主導者 指定規則,解釋規則 20,第二,第一的挑戰者 10,第三,各類細分領域小公司的總和 上有產業的主導公司具有制定行業標準的話語權,制定的規則會培育下游依附的公司,使之產生依賴形成利益共同體。例如在微軟作業系統的基...

string 使用的一些總結

需要好好的總結string的一系列的操作函式的用法 substr,find,nops string 的 操作符可以直接賦值 將乙個字串賦值給另乙個字串 替換原來字串內的內容 方便實用 front 訪問首字元 back 訪問最後的字元 data 返回指向字串首字元的指標 string 同樣擁有迭代器 ...

使用jquery的一些總結

1,使用jquery獲取文字框的值 var abcdefg text12 方式一 abcdefg 0 value 方式二 abcdefg.val 注意 abcdefg.attr value 獲取的是預設值,而不是當前文字框的值 2,使用jquery設定為唯讀 方式一 mechcoupon start...