Ste*_*bbi 8 c# byte casting
可能重复: 在C#中从short转换为byte时会发生什么?
有人可以解释在将值转换为字节时发生的情况,如果它超出了最小/最大字节的范围吗?它似乎取整数值并用255模数.我试图理解为什么这不会引发异常的原因.
int i = 5000; byte b = (byte)i; Console.WriteLine(b); // outputs 136
pra*_*nth 8
5000表示为4个字节(int)(十六进制)
现在,当您将其转换为字节时,它只需要最后1个字节.
原因:在IL级别,将使用conv.u1运算符,如果将int转换为byte,则会截断高位.(请参阅conv.u1文档中的备注部分).
十进制表示为136
Ice*_*ind 5
发生的事情是系统正在丢弃最高有效字节以使其适合。看看这个 StackOverFlow 答案,可以很好地解释正在发生的事情。
归档时间:
13 年,2 月 前
查看次数:
9921 次
最近记录: