gpt4 book ai didi

c# - 为什么 Convert.ToString( (sbyte)-128, 2) 在前面加上 1?

转载 作者:行者123 更新时间:2023-11-30 14:38:32 25 4
gpt4 key购买 nike

我的理解是,没有采用 sbyte 的 ToString 重载,并且它被显式转换为 short。但是这些前导 1 是从哪里来的呢?

Console.WriteLine("{0}", Convert.ToString((sbyte)-128, 2));

>1111111110000000

谢谢,盖博

最佳答案

你的理解完全正确。

1 是由一个叫做“sign extension”的东西引起的。这是方式的副作用2s complement二进制算术有效。

关于c# - 为什么 Convert.ToString( (sbyte)-128, 2) 在前面加上 1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7842616/

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