gpt4 book ai didi

c# - 如何在不转换为字符串的情况下将两位数添加到整数的末尾?

转载 作者:行者123 更新时间:2023-11-30 12:37:54 25 4
gpt4 key购买 nike

我有一个整数 id 生成器,我想在每个 id 的末尾添加两位数,假设一个 id 是 20120719,然后将 56 添加到 id ,则结果为 2012071956

我可以将两个整数转换为字符串,将字符串中的两个数字连接起来,然后将结果转换为整数,但这看起来效率很低。

在 C# 中执行此操作的最佳做​​法是什么?

最佳答案

假设您使用的整数类型足够大,简单的数学运算即可:

var result = 20120719 * 100 + 56;

在做这样的事情时验证你的不变量是个好主意,这样你就可以正确地处理你得到的情况,例如156 而不是 56 是偶然的。一个更通用的函数可能是这样工作的:

static int AddSuffixToId(int id, int suffix)
{
if (id < 0) throw new ArgumentOutOfRangeException(nameof(id));
if (suffix < 0 || suffix >= 100) throw new ArgumentOutOfRangeException(nameof(suffix));

// If we get an overflow, we need to know about it; by default,
// overflows are silently ignored
checked
{
return id * 100 + suffix;
}
}

关于c# - 如何在不转换为字符串的情况下将两位数添加到整数的末尾?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57800793/

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