gpt4 book ai didi

c# - 如何获得特定长度的最大数量

转载 作者:可可西里 更新时间:2023-11-01 08:54:51 26 4
gpt4 key购买 nike

我有一个号码,例如1234567897865;我如何最大化它并创建 99999999999999?

我是这样做的:

        int len = ItemNo.ToString().Length;
String maxNumString = "";

for (int i = 0; i < len; i++)
{
maxNumString += "9";
}

long maxNumber = long.Parse(maxNumString);

完成此任务的更好、更合适和更短的方法是什么?

最佳答案

var x = 1234567897865;  
return Math.Pow(10, Math.Ceiling(Math.Log10(x+1e-6))) - 1;

为了扩展下面的评论,如果这个问题用十六进制或二进制表示,可以非常简单地使用移位运算符来完成

即,“我有一个十六进制数字,例如 3A67FD5C;我如何最大化它并创建 FFFFFFFF?”

我必须试一试才能确保它能正常工作,但它会是这样的:

var x = 0x3A67FD5C;  
var p = 0;
while((x=x>>1)>0) p++; // count how many binary values are in the number
return (1L << 4*(1+p/4)) - 1; // using left shift, generate 2 to
// that power and subtract one

关于c# - 如何获得特定长度的最大数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9915673/

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