gpt4 book ai didi

c# - 结合两个整数来创建一个唯一的数字

转载 作者:可可西里 更新时间:2023-11-01 03:13:35 25 4
gpt4 key购买 nike

早上好

我一直在寻找一种方法来组合两个整数来创建一个唯一的数字,我有两个表需要组合成第三个具有唯一数字的表,

这些是我的表格:

Table A 
SchoolID ClassId
107 56644231
107 56644532
107 320110212

Table B
SchoolID ClassId
108 566442310
108 56644532
108 50110212

我需要将这些字段导出到第三张表,将类(class) ID 和学校 ID 合并到一个名为 classID 的字段中。我需要能够将这些数字组合在一起,然后能够将它们取消组合以将 schoolid 和 classid 分开以用于更新目的。我正在考虑连接字符串 'schoolid + '00' + 'classid' 因为我知道 schoolid 将始终是一个 3 位数,但我正在寻找其他一些我不知道的数学方法'不必使用字符串转换。

有没有数学方法可以做到这一点?或者转换为字符串是执行此操作的最佳方法吗?

我正在使用 C# 编写解决方案。

谢谢,

最佳答案

类似于 Magnus Hoff,但我建议使用二进制友好的方法而不是基数 10 的方法。

combinedid = (classid << 8) + schoolid;

然后,稍后:

classid = combinedid >> 8;
schoolid = combinedid & 0xFF;

我认为从编程的角度来看这更直接一些(明确表示您的学校 ID 是 1 个字节(0-255),类(class) ID 是 3 个字节)。

您也可以使用 bigint (Long/Int64) 轻松地做到这一点,使两个 int32 安全地成为一个 int64:

combinedid = ((long)classid << 32) + schoolid;

关于c# - 结合两个整数来创建一个唯一的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4248501/

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