as3 0中的按位移位運算子是怎麼用的

2022-09-14 17:45:05 字數 5540 閱讀 4558

1樓:天為嗲崇拜朕

在下例中,整數 1 向左移 10 位:

x = 1 << 10按位左移位運算的結果是 1024。這是因為十進位制的 1 等於二進位制的 1,二進位制的 1 向左移 10 位是二進位制的 10000000000,而二進位制的 10000000000 就是十進位制的 1024:

下例將 65535 轉換為 32 位整數,然後右移 8 位,結果為十進位制值 255:

var a:number = 65535 >> 8;

trace(a); // 255這是由於十進位制的 65535 等於二進位制的 00000000000000001111111111111111(十六個 0,後跟十六個 1);向右移 8 位將導致至少捨去 8 個最低有效位(最右邊的 8 位)。因為 65535 是正數,所以,通過移位而空出的位的位置(最左邊的 8 位)將填充 0。結果是二進位制的 00000000000000000000000011111111(二十四個 0,後跟八個 1),這表示 32 位整數 255。

位移的時候使用int,計算機在實際計算過程中轉化為二進位制資料,然後直接新增或者刪除資料。

這樣做的目的是因為位運算直接對於資料進行處理,相比使用*/等運算子可以更迅速,節省計算機開銷!

2樓:匿名使用者

1 0 0 1

0 1 0 1

上下2個數字,相異(不同)時,該位為1

所以1 1 0 0

c語言的按位運算子怎麼操作!?

3樓:匿名使用者

位運算在很多系統程式中常要求在位(bit)一級進行運算或處理。c語言提供了位運算的功能, 這使得c語言也能像組合語言一樣用來編寫系統程式。

一、位運算子c語言提供了六種位運算子:

& 按位與

| 按位或

^ 按位異或

~ 取反

<< 左移

>> 右移

1. 按位與運算 按位與運算子"&"是雙目運算子。其功能是參與運算的兩數各對應的二進位相與。

只有對應的兩個二進位均為1時,結果位才為1 ,否則為0。參與運算的數以補碼方式出現。

例如:9&5可寫算式如下: 00001001 (9的二進位制補碼)&00000101 (5的二進位制補碼) 00000001 (1的二進位制補碼)可見9&5=1。

按位與運算通常用來對某些位清0或保留某些位。例如把a 的高八位清 0 , 保留低八位, 可作 a&255 運算 ( 255 的二進位製數為0000000011111111)。

main()

2. 按位或運算 按位或運算子「|」是雙目運算子。其功能是參與運算的兩數各對應的二進位相或。只要對應的二個二進位有乙個為1時,結果位就為1。參與運算的兩個數均以補碼出現。

例如:9|5可寫算式如下: 00001001|00000101

00001101 (十進位制為13)可見9|5=13

main()

3. 按位異或運算 按位異或運算子「^」是雙目運算子。其功能是參與運算的兩數各對應的二進位相異或,當兩對應的二進位相異時,結果為1。

參與運算數仍以補碼出現,例如9^5可寫成算式如下: 00001001^00000101 00001100 (十進位制為12)

main()

4. 求反運算 求反運算子~為單目運算子,具有右結合性。 其功能是對參與運算的數的各二進位按位求反。

例如~9的運算為: ~(0000000000001001)結果為:1111111111110110

5. 左移運算 左移運算子「<<」是雙目運算子。其功能把「<< 」左邊的運算數的各二進位全部左移若干位,由「<<」右邊的數指定移動的位數,

高位丟棄,低位補0。例如: a<<4 指把a的各二進位向左移動4位。

如a=00000011(十進位制3),左移4位後為00110000(十進位制48)。6. 右移運算右移運算子「>>」是雙目運算子。

其功能是把「>> 」左邊的運算數的各二進位全部右移若干位,「>>」右邊的數指定移動的位數。

例如:設 a=15,a>>2 表示把000001111右移為00000011(十進位制3)。應該說明的是,對於有符號數,在右移時,符號位將隨同移動。

當為正數時, 最高位補0,而為負數時,符號位為1,最高位是補0或是補1 取決於編譯系統的規定。turbo c和很多系統規定為補1。

main()

請再看一例!

main()

4樓:本科科長

簡單說,c程式設計的時候輸入的都是十進位制數字,但如果你要對二進位制數字進行運算,就要用這種按位運算的符號。此前編譯程式先要把十進位制變成二進位制,比如int x=67的二進位制是這樣的。

67->00000000 00000000 00000000 00100011

比如:&:有0則結果為0。 1&1=1, 其餘組合為0

比如67&1=1

|:有1則結果為1。 0|0=0, 其餘組合為1

比如67|1=67

^:異或。相反則為1

比如67^1=66

~取反: 1變0,0變1

比如67取反就變成了

11111111 11111111 11111111 11011100

也就是-66

>>:右移: 上面的就變成了00000000 00000000 00000000 00010001,也即33

<<:左移:上面的就變成了00000000 00000000 00000000 01000110,也即134

5樓:匿名使用者

&按位與,|按位或,^按位異或,-求補,>>左移,<<右移.與&一般用來將某數的某些位置零.

設二進位制是1101001的數,如果要將第四位置0,就拿它與11101111進行與

或|一般用來將兩個數合成,

比如00110011與11000000或的結果11110011異或^用來將某數的某些位取反

比如00011100將第三四位取反,就將它與00110000進行異或》左移,算術運算中是將某數除二,邏輯中是移位《右移,算術運算中是將某數乘二,邏輯中是移位如0001100邏輯左移2位0110000,1111100算術右移2位11111111,相當於除四-求補,求乙個數的相反數

6樓:標苦運先

c語言移位運算子怎麼用?

7樓:匿名使用者

這是c++好吧。。。。算了c和c++的移位運算子都一樣

這個難道不對嗎,左移就是*2啊(不越界的話)

原理就是你把1110化成二進位制(000010001010110),然後每個位都向左移一位,最低位補0,次高位捨棄(最高位是符號位,不能動)

8樓:匿名使用者

x<<=1 相當於乘以2; 假如 x=8,對二進位制來說就是00001000,<<1 就是左移一位,移完之後是00010000,換成十進位制就是16。相當於乘以2。<<2 就是乘以4。

<<3 就是8.

9樓:荊耕順隆詞

|一.位邏輯運算子1.~

按位取反

將1變為0,將0變為1

eg:~(10011010)

(01100101)2.&

按位取與

只有兩個運算元都是1結果才是1,否則為010=

00000000

00000000

00000000

0000101012=

00000000

00000000

00000000

00001100&8

=00000000

00000000

00000000

000010003.|

按位取或

兩個運算元任意一位為1結果就是110=

00000000

00000000

00000000

0000101012=

00000000

00000000

00000000

00001100|14

=00000000

00000000

00000000

000011104.^

按位異或

兩個運算元不同為1,相同為010=

00000000

00000000

00000000

0000101012=

00000000

00000000

00000000

00001100^14

=00000000

00000000

00000000

00000110

5.用法:掩碼

掩碼是通過&(位與)將某些位設定為開(1),將某些位設定為關(0)。將掩碼0看做不透明,將1看著透明。

6.用法:開啟位

開啟位是通過

|(位或)開啟乙個值的特定位,同時保持其他位的不變。這是因為和0位或都為0,和1位或都為1。

7.用法:關閉位

關閉某些位。

8.用法:轉置位

如果一位為1則轉置為0,如果一位為1則轉置為0

二.移位運算子

《左移左移運算子是把運算元的值的每一位向左移動,移動的位數有右邊的運算元決定,右側空出的位數用0填充

>>右移右移運算子是把運算元的值的每一位向右移動,移動的位數有右邊的運算元決定,左邊丟棄的位數用0填充

一、傳統的c方式位操作:

1.基本操作:

使用乙個unsigned

int變數來作為位容器。

2.操作符:

|按位或操作符:result=exp1|exp2;當exp1和exp2中對應位中至少有乙個為1時,result中對應位為1,否則為0。

&按位與操作符::result=exp1&exp2;當exp1和exp2中對應位全為1時,result中對應位為1,否則為0。

^按位異或或操作符:result=exp1^exp2;當exp1和exp2中對應位不相同時,result中對應位為1,否則為0。

~反轉操作符:將位容器中的所有位都反轉,1變為0,0變為1。

《按位左移操作符:exp<

>按位右移操作符:exp>>n,將容器中所有的位向右移n位,空出的位用0填充。

|=,&=,^=

分別對應|&^三種操作符的復合操作符。

3.常用操作

這裡我們假設有乙個result的unsigned

int變數用來儲存32個學生的成績(通過和不通過分別用0和1),這樣result就有33位(result從右至左,從0開始計算位數,在這個例子中0位被浪費)。

(a)將第27位設定為及格(設作1)其他位不變:

result|=(1<<27)

//任意的位值與1作按位或操作其值為1,而與0作按位與操作其值不變

(b)將第27位設定成不及格(設為0)。

result&=~(1<<27)

//任意的位值與0作按位與操作其值為0,而與1作按位與操作其值不變

(c)反轉第27位的值。

result^=(1<<27)

//任意的位值與1作按位異或操作其值為1,而與0作按位異與操作其值不變

以下運算子中優先順序最高的運算子是abc

a選項,看下圖 不用全部記住,記住平時比較常用的就行了,還有記住 算術運算子 關係運算子 邏輯運算子 賦值運算子 a a是邏輯運算子,但c語言中規定它的優先順序最高,b是算數運算子,d也是邏輯運算子,c是個賦值的,優先順序是!算術運算子 關係運算子 邏輯運算子 a 優先順序一般c語言的書後都有附表的...

c中邏輯運算子是或的意思,C 中運算子 和 用法

是 或者 的意思 是 並且 的意思 例如真 假 結果是真 假 假 結果是假 就是說只要其中一邊是真.條件就成立 真 假 結果是假 真 真 結果是真 就是說只要其中一邊不成立.條件就是假 有乙個是假的.那麼結果就是假的.所以兩邊都是假那麼結果肯定也是假的.假假為真?這不是異或,樓主不要天真了。那只能說...

下列運算子中優先順序最高的是ABC

應該選c。優先順序從高到低依次是 算術運算子 關係運算子 邏輯運算子 條件運算子 賦值運算子和逗號運算子。c語言選擇題 下列運算子中優先順序最高的是 a.b.c.c c 中 取餘 優先順序最高,和 優先順序相當 下列運算子中,優先順序最高的是 a,b,c,d,答案選a 邏輯反abcd選項的運算子的優...