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

此输出背后的基础... ?

C# 中类型转换 [显式] 背后的逻辑

short 是 2 字节的数字,字节是 1 字节!

当您从两个字节转换为一个字节时,您将丢失第一个字节

8 位:1024(简称:"0000 0100"0000 0000")。

在二进制中变为(二进制:"0000 0000")= 0。

输出背后的基础很简单:

  1. 每个数字都表示为位,每 8 位创建 1 个字节。

  2. 字节保存从"0"到"255"的数字。

  3. 如果在编程中将较大的数字转换为较小的数字,则会丢失位,而不仅仅是精度。

  4. 在您的情况下,您将在 8 之后丢失所有位(如果您尝试转换的数字在其最后 8 位(位可以是 1 或 0)中存在空洞的值,您将得到它,如果没有,您将获得 0)。

附言在程序员模式下使用Windows计算器或在Google中找到一个程序将数字转换为位,您将变得更加清晰。