5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

VB.NET質問スレ(Part14)

1 :デフォルトの名無しさん:2006/01/31(火) 10:16:22
VB.NETの質問全般です

過去スレ
VB.NET質問スレ (Part13)
http://pc8.2ch.net/test/read.cgi/tech/1131755402/
VB.NET質問スレ (Part12)
http://pc8.2ch.net/test/read.cgi/tech/1121600038/
VB.NET質問スレ (Part11)
http://pc8.2ch.net/test/read.cgi/tech/1114217190/
VB.NET質問スレ (Part10)
http://pc5.2ch.net/test/read.cgi/tech/1109343613/
VB.NET質問スレ (Part9)
http://pc5.2ch.net/test/read.cgi/tech/1106577850/
VB.NET質問スレ (Part8)
http://pc5.2ch.net/test/read.cgi/tech/1102512868/
VB.NET質問スレ (Part7)
http://pc5.2ch.net/test/read.cgi/tech/1096683017/
VB.NET質問スレ (Part6)
http://pc5.2ch.net/test/read.cgi/tech/1088812165/
VB.NET質問スレ (Part5)
http://pc5.2ch.net/test/read.cgi/tech/1078134703/
VB.NET質問スレ (Part4)
http://pc2.2ch.net/test/read.cgi/tech/1065269043/
【老若】VB.net質問スレ【男女】 (Part3)
http://pc5.2ch.net/tech/kako/1056/10562/1056281084.html
【老若】VB.net質問スレ【男女】 (Part2)
http://pc2.2ch.net/tech/kako/1043/10436/1043629429.html
【老若】VB.net質問スレ【男女】
http://pc2.2ch.net/tech/kako/1025/10258/1025848458.html

821 :デフォルトの名無しさん:2006/03/13(月) 18:19:36
>>また、&HFFFFFFFFL をローカル変数に格納して And 演算を行った場合はオーバーフローです。
変数に一度保持させると64bit同士のand演算になり815で言った処理になるその場合
0x00000000FFFFEEFFは最上位ビットが0の為int32の正の限界を突破する為overflowすると思う

変数に一度保持させない場合下記のように定数(&HFFFFFFFFL)が事実上下位32bitで処理されてる

Sub Main()

   Dim v As Int64 = &HFFFFFFFFL
 0000000d mov esi,0FFFFFFFFh
 00000012 xor edi,edi
   Console.WriteLine(CInt(v And &HFFFFFFFFL))
 00000014 mov ecx,esi
 00000016 and ecx,0FFFFFFFFh
 00000019 call dword ptr ds:[79C56664h]
 0000001f nop

End Sub

822 :デフォルトの名無しさん:2006/03/13(月) 18:43:20
>>821
うお、向こうに書き込む直前。
なるほど、その辺の問題でしたか。JIT が微妙な最適化をやったってところ?
or の場合は定数の値の範囲で制限され得ない(32bitを超えうる)からこれには合致しない、と。
割とすっきりですー。

バグの元になる最適化だと思うけど。

251 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)