[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[jfriends-ml 12087] 「 >>> 」演算子など
- From: Yuji Okazawa <yujiorama@xxxxxxxxx>
- Date: Mon, 17 Oct 2005 14:28:28 +0900
- Domainkey-signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition; b=pdNEjPjvnN92nF2bxE8cZWWw9PeWAavJbdfhTmko9mOta7Gps82lFXA+2xyjKO5fDsNh9QLX66C4ePGS4POM1ftlO/iIzBlS6ICvA4hzFeXkx7utN1OuS4ktuE0QIaAOYsmFLFhWs6ZpShx435CwGZi04kGu13B5nvXcRivJpow=
岡澤です.読書会お疲れさまでした.
> 「 >>> 」の演算子の機能は? --> 宿題!! (情報求む)
を調べてみました.
http://java.sun.com/docs/books/jls/second_edition/html/expressions.doc.html#5121
より
n >>> s において
・ n >= 0 のときは (n>>s) と同じ
・ n < 0 のときは (n>>s)+(2<<~s) と同じ
→ (2<<~s) を加算するのは,符号ビットをキャンセルするため
ということでした.
「<<<」は「論理左シフト」になりそう,という話があったと思うのですが,
やっぱり用意されてる言語は見あたりませんね.
一応,Windows 関数では
Int64ShllMod32
で 64 ビット整数の論理左シフトができるようです.いつ使うんだろう.
http://www.microsoft.com/japan/msdn/library/ja/jpfileio/html/_win32_int64shllmod32.asp
これだけだとあれなので,少し触ったことのある言語について,
ビットシフト演算を調べてみました.
ビットと縁が遠そうな JavaScript が一番凝ったことをしていて,おもしろいかも.
* Ruby
http://www.ruby-lang.org/ja/man/?cmd=view;name=Integer より
・「>>>」はない
・「>>」は算術右シフト
* Perl
http://perldoc.jp/docs/perl/5.6.1/perlop.pod#Integer%20Arithmetic より
・「>>>」はない
・「>>」を適用すると
→ デフォルトでは論理右シフト
・use integer すると
→算術右シフト
* JavaScript( ECMA Script )
http://www.ecma-international.org/publications/standards/Ecma-262.htm より
・「>>>」がある
→ 途中いろいろあって,演算結果は符号なし整数になる
* C#
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpdnbcsharp/htm/csharp2-6.asp
より
・「>>>」はない
・int に「>>」を適用すると
→ 算術右シフト
・uint に「>>」を適用すると
→ 論理右シフト
以上です.
--
岡澤裕二
yujiorama+java-reading@xxxxxxxxx