位運算 的取餘操作

2021-10-06 09:59:05 字數 930 閱讀 7470

if

((tab = table)

== null ||

(n = tab.length)==0

) n =

(tab =

resize()

).length;if(

(p = tab[i =

(n -1)

& hash]

)== null)

tab[i]

=newnode

(hash, key, value, null)

;

/**

* the default initial capacity - must be a power of two.

*/static

final

int default_initial_capacity =

1<<4;

// aka 16

對於乙個數k要除以2的n次方,也就是相當於把k向右移n位,而被移出去的n位即正好是我們要求是餘數。

2的二進位制減1是	0001

4的二進位制減1是 0011

8的二進位制減1是 0111

16的二進位制減1是 1111

...

1的個數就是移出去的位數

11%4

=3=11

& (4-1)

=1011

& (0100

-1)//用二進位制表示

=1011

&0011

=0011

=3

11

>>2=

1001

>>2=

10|11=

2 餘 3

取餘與位運算

在c風格語言中 比如c,c c 注 排名按出生日期 取餘運算子定義為 但在很久很久以前,cpu採用如下方法計算餘數 注意,該方法 只對2的n次方數系有效 x 2 n 1 首先從求餘數談起,我們知道,計算機中儲存的方式是0和1序列 1 0001 2 0 2 0010 2 1 3 0011 2 1 1 ...

取餘與位運算

在c風格語言中 比如c,c c 注 排名按出生日期 取餘運算子定義為 但在很久很久以前,cpu採用如下方法計算餘數 注意,該方法只對2的n次方數系有效 x 2 n 1 首先從求餘數談起,我們知道,計算機中儲存的方式是0和1序列 1 0001 2 0 2 0010 2 1 3 0011 2 1 1 4...

取餘與位運算

在c風格語言中 比如c,c c 注 排名按出生日期 取餘運算子定義為 但在很久很久以前,cpu採用如下方法計算餘數 注意,該方法只對2的n次方數系有效 x 2 n 1 首先從求餘數談起,我們知道,計算機中儲存的方式是0和1序列 1 0001 2 0 2 0010 2 1 3 0011 2 1 1 4...