Ik heb 4 bytes (b1,b2,b3,b4) hier wil ik een unsigned int 32 van maken:
uint=b1+b2<<8+b3<<16+b4<<24
Maar dit werkt niet. de b3<<24 heeft een fout als de byte 134 is. binair is dit 10000110 en signed zou dit negatief worden. De foutmelding is: Value was either too large or too small for a UInt32.
als ik dit doe:
krijg ik ook die foutmelding. b4 is een byte, aldus MSDN een unsigned char/int. i moet dus 2248146944 worden en een watch geeft aan dat (b4<<24) -2046820352 is. Waarom werkt dit niet?
uint=b1+b2<<8+b3<<16+b4<<24
Maar dit werkt niet. de b3<<24 heeft een fout als de byte 134 is. binair is dit 10000110 en signed zou dit negatief worden. De foutmelding is: Value was either too large or too small for a UInt32.
als ik dit doe:
C#:
1
2
| uint i; i=Convert.ToUInt32(b4<<24); |
krijg ik ook die foutmelding. b4 is een byte, aldus MSDN een unsigned char/int. i moet dus 2248146944 worden en een watch geeft aan dat (b4<<24) -2046820352 is. Waarom werkt dit niet?
if broken it is, fix it you should