byte から int への変換

byte から int への変換を行う場合、Windows なら、

uint32 n = *(uint32*)&buf[ off ];

これだけで良いのだけれども、BREW の場合はメモリを 4 バイト単位でアクセスしなかった場合、かなりやばい動作をするので、

uint32 n1,n2,n3,n4;
n1 = buf[ off + 0 ];
n2 = buf[ off + 1 ];
n3 = buf[ off + 2 ];
n4 = buf[ off + 3 ];
uint32 n = (uint32))*1(;

こうやって、バイト単位で計算してやる必要がある。


で、最近気が付いたんだけど、

uint32 n;
MEMCPY( &n , &buf[ off ] , sizeof( uint32 ) );

これでいいじゃん(;´Д`)

*1:n1 << 0) | (n2 << 8) | (n3 << 16) | (n4 << 24