Go 戈朗:把两个数字合起来

Go 戈朗:把两个数字合起来,go,integer,int64,int32,Go,Integer,Int64,Int32,问这个问题我觉得很愚蠢,但我如何在GO中归档以下内容 假设我有两个int32,它们的值都是33。 如何将它们组合成一个值为3333而不是66的int32 var a, b int32 = 33, 33 a = a*100 + b fmt.Println(a) 编辑:以下是根据数字计算填充的版本: func main() { var a, b int32 = 1234, 456 a = a*padding(b) + b fmt.Println(a) } func pa

问这个问题我觉得很愚蠢,但我如何在GO中归档以下内容

假设我有两个int32,它们的值都是33。
如何将它们组合成一个值为3333而不是66的int32

var a, b int32 = 33, 33
a = a*100 + b
fmt.Println(a)

编辑:以下是根据数字计算填充的版本:

func main() {
    var a, b int32 = 1234, 456
    a = a*padding(b) + b
    fmt.Println(a)
}

func padding(n int32) int32 {
    var p int32 = 1
    for p < n {
        p *= 10
    }
    return p
}
func main(){
变量a,b int32=1234456
a=a*填充(b)+b
fmt.Println(a)
}
函数填充(n int32)int32{
var p int32=1
对于p

注意,您还应该检查int32是否不会溢出。如果您不想担心溢出问题,可以使用

编辑:以下是根据数字计算填充的版本:

func main() {
    var a, b int32 = 1234, 456
    a = a*padding(b) + b
    fmt.Println(a)
}

func padding(n int32) int32 {
    var p int32 = 1
    for p < n {
        p *= 10
    }
    return p
}
func main(){
变量a,b int32=1234456
a=a*填充(b)+b
fmt.Println(a)
}
函数填充(n int32)int32{
var p int32=1
对于p


注意,您还应该检查int32是否不会溢出。如果您不想担心溢出问题,可以使用a来代替。

与Ainar-G的解决方案相比,我不知道性能如何,但这是怎么回事:

var a, b int32 = 33, 33
result, err := strconv.Atoi(fmt.Sprintf("%d%d", a, b))
if err != nil {
    panic(err)
}        
fmt.Println(int32(result))

与Ainar-G的解决方案相比,我不知道性能如何,但这方面如何:

var a, b int32 = 33, 33
result, err := strconv.Atoi(fmt.Sprintf("%d%d", a, b))
if err != nil {
    panic(err)
}        
fmt.Println(int32(result))

是的,但是如果值不同,比如说1223和5644呢?是的,但是如果值不同,比如说1223和5644呢?