我写了一个测试,并了解到该字节仍然存在.例:
private static int SetByte(int y){ return y;}.....byte x = (byte) SetByte(-4);Console.Writeline(x);//output is 252
有一个结转!当我们走另一条路时,就会发生这种情况.
byte x = (byte) SetByte(259);Console.Writeline(x);//output is 3
我希望它在第一种情况下将其设置为255,在第二种情况下将其设置为0.这个结转的目的是什么?是不是因为我正在投射这个整数赋值?什么时候在现实世界中有用?
解决方法byte x = (byte) SetByte(259);Console.Writeline(x);//output is 3
SetByte结果的强制转换是将模256应用于整数输入,有效地丢弃超出一个字节范围的位.
259%256 = 3
原因:实施者选择仅考虑8个最低有效位,忽略其余位.
总结以上是内存溢出为你收集整理的c# – 为什么Bytes残留?全部内容,希望文章能够帮你解决c# – 为什么Bytes残留?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)