gpt4 book ai didi

c# - 二进制到十进制的转换 - 公式?

转载 作者:太空狗 更新时间:2023-10-29 23:54:08 27 4
gpt4 key购买 nike

我已经搜索了一段时间,但还没有找到任何有用的东西,我正在研究一个子网计算器,我已经使用了我在这里找到的十进制到二进制,不过,我还没有找到一种将二进制转换为十进制的好方法。

注意:记住它是从二进制到十进制,无论如何,我需要公式或类似的东西(意思是计算它,而不是自动的)。

我通过阅读其他一些帖子了解到您可以通过除以 10 以某种方式得到结果,但我并不真正理解它,所以如果有人能指出我正确的方向,我会很高兴.

非常感谢大家的帮助! :)

最佳答案

不用 LINQ 做:

var s = "101011";    // my binary "number" as a string
var dec = 0;
for( int i=0; i<s.Length; i++ ) {
// we start with the least significant digit, and work our way to the left
if( s[s.Length-i-1] == '0' ) continue;
dec += (int)Math.Pow( 2, i );
}

可以将任何基数中的数字视为其数字乘以其位值的总和。例如十进制数3906可以写成:

3*1000 + 9*100 + 0*10 + 6*1

位值只是 10 的幂:

3*10^3 + 9*10^2 + 0*10^1 + 6*10^0

(请记住,任何数字的零次方都是 1。)

二进制的工作方式完全相同,只是基数是 2,而不是 10。例如,二进制数 101011 可以写成:

1*2^5 + 0*2^4 + 1*2^3 + 0*2^2 + 1*2^1 + 1*2^0

我希望这能让您更好地理解二进制数以及如何转换它们。

实际上,最好的解决方案是 Matt Grande 的;最好使用库方法而不是自己动手(除非你有充分的理由这样做)。

关于c# - 二进制到十进制的转换 - 公式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9742777/

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