如果我要4個字節轉換成一個int,我可以這樣做:BitShifting爲UINT在C#
byte[] b = BitConverter.GetBytes(i1);
int i2 = BitConverter.ToInt32(b,0);
int i3 = b[0] | (b[1]<<8) | (b[2]<<16) | (b[3]<<24);
然後I1,I2,I3將一律平等。
但我如何做同樣的一個uint?這:
uint u1 = uint.MaxValue-1000;
byte[] b = BitConverter.GetBytes(u1);
uint u2 = BitConverter.ToUInt32(b,0);
uint u3 = (uint)(b[0] | (b[1]<<8) | (b[2]<<16) | (b[3]<<24));
導致一個超大流量大Uint。
你有什麼異常? – Dai
System.OverflowException:算術運算導致溢出。 – mcmillab
我不明白它爲什麼會拋出異常。不要在這裏爲uint.MaxValue和uint.MaxValue拋出一個異常 - 100.你得到這個異常的值是什麼,什麼行? –