我尝试编写一种逻辑是将int32
正值转换为相应的负值,即abs(negativeInt32) == positiveInt32
.
我已经尝试过:
第一的:
fmt.Printf("%v\n", int32(^uint32(int32(2) -1)))
这会导致错误: prog.go:8: constant 4294967294 overflows int32
第二:
var b int32 = 2 fmt.Printf("%v\n", int32(^uint32(int32(b)-1)))
这导致-2
.
两者如何导致不同的结果。我认为他们是平等的。
play.golang.org
编辑替换uint32
用int32
的第一种情况。
对于那些遇到这个问题的人,我自己已经回答了这个问题。:)
泛舟湖上清波郎朗
慕妹3146593
相关分类