基本上显式类型转换意味着可能存在精度损失
示例:
short s = 256;
byte b = (byte) s;
Console.WriteLine(b);
// output : 0
或
short s = 257;
byte b = (byte) s;
Console.WriteLine(b);
// output : 1
或
short s = 1024;
byte b = (byte)s;
Console.WriteLine(b);
Console.ReadKey();
// output : 0
以此输出为基础......?
答案 0 :(得分:2)
Short是一个2字节的数字,字节是1字节!
当您从两个字节转换为一个字节时,您将丢失第一个
8位:1024(短:" 0000 0100"" 0000 0000")。
以二进制形式存在(二进制:" 0000 0000")= 0.
输出背后的基础很简单:
每个数字都表示为位,每8位产生1个字节。
字节保存" 0"到" 255"。
如果在编程中将较大的数字转换为较小的数字,则会丢失不仅仅是精度的数据。
在你的情况下,你在8之后失去了每一位(如果你想要转换的数字的值最后8位(比特可以是1或0),你会得到它,如果不是你会得到0)。
P.S。在程序员模式下使用Windows计算器或在谷歌中找到一个程序将数字转换为位,这将更加清晰。