据我所知,int并uint为64位有符号/无符号整数-就像int64/ uint64.而且我也明白这int不仅仅是int64(比如byte- > uint8is)的别名,所以在适用时int64需要转换为int反之亦然.但是使用一个比另一个有什么好处?使用常规类型是否有任何运行时性能损失?
对不起,如果这是一个常见的问题 - 我已经用Google搜索了答案(并在这里也进行了搜索),因为我以为其他人可能已经出现过但没有找到任何人回答这个问题对他们如何影响表现(如果有的话),内存使用(我猜不是,如果它们都是64位整数?),也不是编译器如何处理它们.
编辑:我知道int/ unit32位架构是32位.为了简洁和比较喜欢,我假设这是一个64位的Golang环境.
任何人都可以帮助我吗?将 uint64 转换为 int64 请
//fmt.Println(int64(18446744073709551615))
//constant 18446744073709551615 overflows int64
var x uint64 = 18446744073709551615
var y int64 = int64(x)
fmt.Println(y) //-1
//just like(c)signed long long
//anyone can help me pls!
//How can I using like this?
// -9223372036854775808 +9223372036854775807
func BytesToInt(b []byte) int {
bytesBuffer := bytes.NewBuffer(b)
var tmp int32
binary.Read(bytesBuffer, binary.BigEndian, &tmp)
return int(tmp)
}
Run Code Online (Sandbox Code Playgroud)