gpt4 book ai didi

c# - 当您将 Int32 设置为等于 Int16 时,幕后会发生什么?

转载 作者:太空宇宙 更新时间:2023-11-03 18:01:00 24 4
gpt4 key购买 nike

当我这样做时,底层发生了什么?

Int32 a = 0;
Int16 b = 50;

a = b;

最佳答案

像这样:

IL_0001:  /* 1F   | 32               */ ldc.i4.s   50
IL_0003: /* 0B | */ stloc.1
IL_0004: /* 07 | */ ldloc.1
IL_0005: /* 0A | */ stloc.0

在较低的层次上,它取决于机器架构和优化级别。像这样的代码,没有任何效果,可能会被完全省略。否则,它将是简单的代码,可能像这样:

movsx eax, word ptr [ebp+12]
mov [ebp+8], eax

movsx 是 x86 指令,它在将较短数字加载到较大目的地时保留较短数字的符号;基本上,它会查看较小源的最高有效位,并在扩展数字时将其复制到其余位中。

关于c# - 当您将 Int32 设置为等于 Int16 时,幕后会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1339029/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com