JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Java 新手區  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to topicthreaded modego to previous topicgo to next topic
本主題所含的標籤
無標籤
作者 請問">>"語法是什麼意思
umx13



發文: 0
積分: 0
於 2003-10-27 09:49 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
在很多文章中都會看到">>"的語法
可是都找不到相關的解釋
用全文檢索又找不到相關的東西
可以麻煩哪位大大有空 幫小弟解釋一下
感恩~~~!!


anthonycs edited on 2003-10-27 09:58
reply to postreply to post
作者 Re:請問">>"語法是什麼意思 [Re:umx13]
angus





發文: 22
積分: 1
於 2003-10-27 13:25 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
>>(shift)是移位運算符號,必須先將資料轉換成二進位後再來執行shift

例如4>>1
先將十進位的4轉換成二進位的100,再把每個位元上的資料往右移動
變成010,再轉成十進位的2。


reply to postreply to post
作者 Re:請問">>"語法是什麼意思 [Re:umx13]
rain





發文: 55
積分: 1
於 2003-10-27 14:14 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
提供你一個好算的方法
如4>>2
>>用除的,例如4>>2 那算法是4除以2的2次方,所以等於1
<<用乘的,例如4<<2 那算法就是4*2的2次方,所以等於16

但要記住>>是signed bit


reply to postreply to post
作者 Re:請問">>"語法是什麼意思 [Re:umx13]
umx13



發文: 0
積分: 0
於 2003-10-27 15:27 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
感謝兩位大大的指導
感恩~~~!!


reply to postreply to post
作者 Re:請問">>"語法是什麼意思 [Re:umx13]
寒冰





發文: 7
積分: 0
於 2003-12-25 14:43 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
提供你一個好算的方法
如4>>2
>>用除的,例如4>>2 那算法是4除以2的2次方,所以等於1
<<用乘的,例如4<<2 那算法就是4*2的2次方,所以等於16

這種算法好像不怎么科學啊﹗
當右移或左移的位數為2時﹐才可以啊


reply to postreply to post
作者 Re:請問">>"語法是什麼意思 [Re:寒冰]
sqb





發文: 1
積分: 0
於 2003-12-25 17:48 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
寒冰 wrote:
提供你一個好算的方法
如4>>2
>>用除的,例如4>>2 那算法是4除以2的2次方,所以等於1
<<用乘的,例如4<<2 那算法就是4*2的2次方,所以等於16

這種算法好像不怎么科學啊﹗
當右移或左移的位數為2時﹐才可以啊
^^^^^^^^^^^^^^^^^^^^^^^^
是嗎?
上述提到的"2"是指數部分的值,要是4>>1,4/2^1 = 2
做shift,value calculation這樣很方便也正確阿
另外前面提到要注意signed integer
別忘記<<可能有overflow問題


reply to postreply to post
作者 Re:請問">>"語法是什麼意思 [Re:angus]
mis_hid





發文: 23
積分: 0
於 2003-12-25 19:17 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
angus wrote:
>>(shift)是移位運算符號,必須先將資料轉換成二進位後再來執行shift

例如4>>1
先將十進位的4轉換成二進位的100,再把每個位元上的資料往右移動
變成010,再轉成十進位的2。


>> 向右移動,數字轉變為二進制的數字后向右移動
<< 向右移動,數字轉變為二進制的數字后向右移動
>>> 向右移動,與>>相同數字轉變為二進制的數字后向右移動


reply to postreply to post
我走在 Microsoft 的大道上,
隱約看到 Sun 的光茫,
我要在黎明到來之前,
趕往 Java 的殿堂!
作者 Re:請問">>"語法是什麼意思 [Re:mis_hid]
Duncan

還隱隱作痛

版主

發文: 7816
積分: 39
於 2003-12-26 12:13 user profilesend a private message to usersend email to Duncanreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
mis_hid wrote:
>> 向右移動,數字轉變為二進制的數字后向右移動
<< 向右移動,數字轉變為二進制的數字后向右移動
>>> 向右移動,與>>相同數字轉變為二進制的數字后向右移動


那為什麼要有 ">>", ">>>" 這兩種寫法呢? 如果二者的語意一模一樣。


reply to postreply to post

給我
辣味豆腐 其餘免談
作者 Re:請問">>"語法是什麼意思 [Re:umx13]
louisz

長門有希



發文: 136
積分: 1
於 2003-12-26 12:31 user profilesend a private message to usersend email to louiszreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
>>>是不管原値的正負號在左邊均置0所以基本上他跟>>應該不太像在負數方面。

reply to postreply to post
作者 Re:請問">>"語法是什麼意思 [Re:louisz]
jesterfool





發文: 2
積分: 0
於 2005-01-08 23:03 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
louisz wrote:
>>>是不管原値的正負號在左邊均置0所以基本上他跟>>應該不太像在負數方面。


而且它的運算元必須是int資料型態,例如
byte a=-5,b=2;
System.out.println(a>>>b);
結果將會是1073741822而不是62,因為Java會先將 -5 轉為int型態再做運算


reply to postreply to post
I love robots!!
作者 Re:請問">>"語法是什麼意思 [Re:umx13]
twelve





發文: 14
積分: 0
於 2006-03-09 18:24 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
嗯,教科书上有的

reply to postreply to post
作者 Re:請問">>"語法是什麼意思 [Re:umx13]
heaven0602





發文: 1
積分: 0
於 2009-11-23 15:16 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
我发表一下自己看法

<<左移位
(0000 0000 0000 0100 = 4) << 1 后得 (0000 0000 0000 1000 = 8)
(0000 0000 0000 0100 = 4) << 2 后得 (0000 0000 0001 0000 = 16)
(0000 0000 0000 0100 = 4) << 3 后得 (0000 0000 0010 0000 = 32)

可以看出 <<左移位 可看成 x* 2n

>>右移位比较麻烦
虽然可以看成 n/ 2n,但会出现以下情况
(0000 0000 0000 0001 = 1) >> 1 后得 (1000 0000 0000 0000 = 32768)


reply to postreply to post
作者 Re:請問">>"語法是什麼意思 [Re:heaven0602]
Duncan

還隱隱作痛

版主

發文: 7816
積分: 39
於 2009-11-23 16:12 user profilesend a private message to usersend email to Duncanreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
heaven0602 wrote:
>>右移位比较麻烦
虽然可以看成 n/ 2n,但会出现以下情况
(0000 0000 0000 0001 = 1) >> 1 后得 (1000 0000 0000 0000 = 32768)


這部分請你再次檢驗,operator >> 的行為並沒有如你形容的那樣。
operator >> 只有在 operand 是負數時才會在 MSB 補 1。


reply to postreply to post

給我
辣味豆腐 其餘免談
» JWorld@TW »  Java 新手區

reply to topicthreaded modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8