C# 中类型转换 [显式] 背后的逻辑
本文关键字:背后 显式 类型转换 | 更新日期: 2023-09-27 18:32:42
基本上显式类型转换意味着可能会损失精度
例:
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
此输出背后的基础... ?
short 是 2 字节的数字,字节是 1 字节!
当您从两个字节转换为一个字节时,您将丢失第一个字节
8 位:1024(简称:"0000 0100"0000 0000")。
在二进制中变为(二进制:"0000 0000")= 0。
输出背后的基础很简单:
-
每个数字都表示为位,每 8 位创建 1 个字节。
-
字节保存从"0"到"255"的数字。
-
如果在编程中将较大的数字转换为较小的数字,则会丢失位,而不仅仅是精度。
-
在您的情况下,您将在 8 之后丢失所有位(如果您尝试转换的数字在其最后 8 位(位可以是 1 或 0)中存在空洞的值,您将得到它,如果没有,您将获得 0)。
附言在程序员模式下使用Windows计算器或在Google中找到一个程序将数字转换为位,您将变得更加清晰。