C 移位運算 左移和右移

2022-09-02 10:36:09 字數 1315 閱讀 5983

今天寫乙個比較有意思的東西 --  c#移位運算(左移和右移)。

c#是用<>(右移) 運算子是用來執行移位運算。

左移 (<

將第乙個運算元向左移動第二個運算元指定的位數,空出的位置補0。

左移相當於乘. 左移一位相當於乘2;左移兩位相當於乘4;左移三位相當於乘8。

x<<1= x*2 

x<<2= x*4 

x<<3= x*8 

x<<4= x*16

同理, 右移即相反:

右移 (>>) 

將第乙個運算元向右移動第二個運算元所指定的位數,空出的位置補0。

右移相當於整除. 右移一位相當於除以2;右移兩位相當於除以4;右移三位相當於除以8。

x>>1= x/2 

x>>2= x/4 

x>>3= x/8 

x>>4=x/16

當宣告過載c#移位運算子時,第乙個運算元的型別必須總是包含運算子宣告的類或結構,並且第二個運算元的型別必須總是 int,如:

class

program

<< 2 結果是:

", shift1.vala, shift2.vala);

console.writeline(

" << 2 結果是:

", shift1.valb,shift2.valb);

console.writeline(

" >> 2 結果是:

", shift1.vala, shift3.vala);

console.writeline(

" >> 2 結果是:

", shift1.valb, shift3.valb);

console.readline();

}public

class

shiftclass

public

static

shiftclass

operator

<<

(shiftclass shift,

intcount)

public

static

shiftclass

operator

>>

(shiftclass shift,

intcount)}}

以上表示式,輸出結果是:

因為位移比乘除速度快.對效率要求高,而且滿足2的冪次方的乘除運方,可以採用位移的方式進行。

比較有意思吧?

C 移位運算 左移和右移

今天寫乙個比較有意思的東西 c 移位運算 左移和右移 c 是用 右移 運算子是用來執行移位運算。左移 將第乙個運算元向左移動第二個運算元指定的位數,空出的位置補0。左移相當於乘.左移一位相當於乘2 左移兩位相當於乘4 左移三位相當於乘8。x 1 x 2 x 2 x 4 x 3 x 8 x 4 x 1...

C 移位運算 左移和右移

c 是用 右移 運算子是用來執行移位運算。左移 將第乙個運算元向左移動第二個運算元指定的位數,空出的位置補0。左移相當於乘.左移一位相當於乘2 左移兩位相當於乘4 左移三位相當於乘8。x 1 x 2 x 2 x 4 x 3 x 8 x 4 x 16 同理,右移即相反 右移 將第乙個運算元向右移動第二...

C 移位運算 左移和右移

c 是用 右移 運算子是用來執行移位運算。左移 將第乙個運算元向左移動第二個運算元指定的位數,空出的位置補0。左移相當於乘.左移一位相當於乘2 左移兩位相當於乘4 左移三位相當於乘8。x 1 x 2 x 2 x 4 x 3 x 8 x 4 x 16 同理,右移即相反 右移 將第乙個運算元向右移動第二...