recessive: 修改 MergeInt64 为泛型函数

This commit is contained in:
kercylan98 2023-07-29 09:34:51 +08:00
parent abb8a42a5c
commit b730d54499
1 changed files with 6 additions and 5 deletions

View File

@ -124,17 +124,18 @@ func UnMerge[V generic.SignedNumber](refer, num V) (a, b V) {
return a, b return a, b
} }
// MergeInt64 将两个 int64 数字合并为一个 int64 数字 // MergeToInt64 将两个数字合并为一个 int64 数字
func MergeInt64(a int64, b int64) int64 { func MergeToInt64[V generic.SignedNumber](v1 V, v2 V) int64 {
a, b := int64(v1), int64(v2)
mergedNumber := (a << 32) | (b & 0xFFFFFFFF) mergedNumber := (a << 32) | (b & 0xFFFFFFFF)
return mergedNumber return mergedNumber
} }
// UnMergeInt64 将一个 int64 数字拆分为两个 int64 数字 // UnMergeInt64 将一个 int64 数字拆分为两个数字
func UnMergeInt64(n int64) (int64, int64) { func UnMergeInt64[V generic.SignedNumber](n int64) (V, V) {
a := n >> 32 a := n >> 32
b := n & 0xFFFFFFFF b := n & 0xFFFFFFFF
return a, b return V(a), V(b)
} }
// ToContinuous 将一组非连续的数字转换为从1开始的连续数字 // ToContinuous 将一组非连续的数字转换为从1开始的连续数字