我们有6组,每组253台计算机,但是每组的范围是从2号机到#254号机,并延续ID来表示每台计算机。
如下表所示:
群组机器编号
0 2-254 1-253
1 2-254 254-506
2 2-254 507-759
3 2-254 760-1012
4 2-254 1013-1265
5 2-254 1266-1518
我正在寻找一种简单的c#方式来编写将ID转换为群机的函数
示例:ID 508是组#2,机器#3(机器507是组2中的第一台机器,由于它以2开头,因此第二台机器是机器#3)
还有另一种方式
示例:如果我获取了parameter:group#2 machine#5,则该函数必须返回ID 510
我怎样才能做到这一点?
我有一个公式,但是没有用
有任何想法吗?
谢谢
最佳答案
首先从ID中减去一个,以零为基础,然后将其分为组和机器,并通过加两个将机器号调整为2-254范围:
id--;
int group = id / 253;
int machine = (id % 253) + 2;
作为两个独立的功能:
int GetGroup(int id) {
return (id - 1) / 253;
}
int GetMachine(int id) {
return ((id - 1) % 253) + 2;
}
要从组和计算机中获取ID,请执行相反的操作。从机器号中减去2,使其从零开始,合并它们,然后加一:
int GetId(int group, int machine) {
return group * 253 + (machine - 2) + 1;
}
关于c# - 如何创建C#函数以将数字范围的组转换为连续数字,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/900689/