お邪魔します。
今回は、psrl(w)の挙動についてちょっと納得がいかなかったので
質問に来ました。
例えばですが、
0x48b749b64ab54bb4
をpsrlw 8で右論理シフトする(256で割る)と答えは
0x00480049004a004b
となるわけですが、これを
for(i=0;i<8;++i)
psrlw 1
で実行し、各値を見ていくと、添付ファイルのようになりました。
(上は16進数、下は2進数で結果を表記しています)
初めの状態から一回シフトすると自分の考えでは
以下のようになると思いました。
(2バイト単位で改行します)
0100100010110111
0100100110110110
0100101010110101
0100101110110100
↓
0010010001011011
0010010011011011
0010010101011010
0010010111011010
結果を予想と比較してみます。
予想:0010010001011011001001001101101100100101010110100010010111011010
結果:0010010001011111001001001101111000100101010111010010010111011100
これが微妙に違っています。
異なるのは、シフトによって消えていく部分なので、
今回の結果には影響しないのですが、なんだかしっくりきません。
右論理シフトはMSB=0,すべて一つ右にシフトと記憶していますが・・・
動作がPSRL(W)ではちょっと違うのでしょうか?
よろしくお願いします。
PSRL(W)の挙動について
Re:PSRL(W)の挙動について
>これが微妙に違っています
最初の値 48B749B64AB54BB4を1回 psrlwで 1ソフトした値は
「予想」の 245B24DB255A25DAで合ってますよ。
[color=#d0d0ff" face="monospace]
48B749B64AB54BB4: 0100100010110111 0100100110110110 0100101010110101 0100101110110100
245B24DB255A25DA: 0010010001011011 0010010011011011 0010010101011010 0010010111011010
[/color]
>各値を見ていくと、添付ファイルのようになりました
従って、「添付ファイル」の計算が何かおかしいと思われます。
[color=#d0d0ff" face="monospace]
1回目
245F24DE255D25DC
->245B24DB255A25DA ?
2回目
122F126F12AE12EE
->122D126D12AD12ED ?
3回目
0917093709570977
->0916093609560976 ?
4回目
048B049B04AB04BB
->048B049B04AB04BB ○
5回目
0245024D0255025D
->0245024D0255025D ○
6回目
01220126012A012E
->01220126012A012E ○
7回目
0091009300950097
->0091009300950097 ○
8回目
00480049004A004B
->00480049004A004B ○
[/color]
上が添付の txtにあった値、下が実際の値です。
1~3回目がおかしいようですね……。
Re:PSRL(W)の挙動について
Justyさん、ご回答ありがとうございます!
違う値で今試したところ・・・バッチシできてました^^;
・・・すみません。。どこでミスしたか分からないですorz
無駄な時間を浪費させてしまい、大変申し訳ありませんでした。
とりあえず、挙動は自分の予想していた通り
(っというか当たり前でした・・・)
ということで解決にさせていただきます。
次回もよろしくお願いします。
#なんであんな結果を得たんだろうか・・・
違う値で今試したところ・・・バッチシできてました^^;
・・・すみません。。どこでミスしたか分からないですorz
無駄な時間を浪費させてしまい、大変申し訳ありませんでした。
とりあえず、挙動は自分の予想していた通り
(っというか当たり前でした・・・)
ということで解決にさせていただきます。
次回もよろしくお願いします。
#なんであんな結果を得たんだろうか・・・
Re:PSRL(W)の挙動について
全然関係ないことですが失礼します。
>無駄な時間を浪費させてしまい
貴重な時間を、ではないでしょうか。
なんかすごい違和感があったんで・・・
どうでもいいことにつっこんで、申し訳ないです^^;
まぁスルーしてくださいー
>無駄な時間を浪費させてしまい
貴重な時間を、ではないでしょうか。
なんかすごい違和感があったんで・・・
どうでもいいことにつっこんで、申し訳ないです^^;
まぁスルーしてくださいー