我想转换uint8
为int
,所以我写了一个const 0xfc
,并尝试使用int8(0xfc)
它进行转换。但是,代码会引发错误:
package main
import (
"fmt"
)
func main() {
a := int8(0xfc) // compile error: constant 252 overflows int8
b := a
fmt.Println(b)
}
但是,如果我在分配后推迟类型转换,则代码可以解决。
package main
import (
"fmt"
)
func main() {
a := 0xfc
b := int8(a) // ok
fmt.Println(b)
}
我的问题:
类型化常数的值必须始终可以由常数类型的值准确表示。以下常量表达式是非法的:
uint(-1) // -1 cannot be represented as a uint
int(3.14) // 3.14 cannot be represented as an int
int64(Huge) // 1267650600228229401496703205376 cannot be represented as an int64
Four * 300 // operand 300 cannot be represented as an int8 (type of Four)
Four * 100 // product 400 cannot be represented as an int8 (type of Four)
并非所有整数值都可以适合所有整数类型。可能会出现两个问题:该值可能太大,或者可能是分配给无符号整数类型的负值。例如,int8的范围是-128到127,因此永远不能将超出该范围的常量分配给int8类型的变量:
var i8 int8 = 128 // Error: too large.
类似地,uint8(也称为字节)的范围是0到255,因此不能使用较大或负的常量被分配给一个uint8:
var u8 uint8 = -1 // Error: negative value.
这种类型检查可以捕获如下错误:type Char byte var c Char = '世' // Error: '世' has value 0x4e16, too large.
如果编译器抱怨您使用常量,则可能是真正的错误。
我的实际需求的转换
byte
,以int32
解析二进制文件时。我可能会遇到常量字节0xfc
,并应在考虑到符号的情况下int8
将其转换为之前将其传输到int32
。
是的,这是要走的路:
var b byte = 0xff
i32 := int32(int8(b))
fmt.Println(i32) // -1
问题内容: 所以,我需要你的帮助。我找不到关于那个话题的任何东西。Golang是一种新鲜出炉的语言,因此对于像我这样的新手来说很难快速找到答案。 问题答案: 预先定义的Go 类型大小是特定于实现的,是32位还是64位(数字类型)。 这是将big-endian s 转换为s(s)的示例。 输出: 要么
问题内容: 从字符串转换为字符串的最佳方法(最快的性能)是什么? 对于我们可以做,但它给出了一个错误: 我从那产生的from 方法而不是 这个解决方案最快吗? 编辑 我的坏东西,而不是..,所以我可以直接做。 问题答案: 事先注意: 询问者首先指出输入分片就是答案。后来他意识到输入是可以直接转换为的,因为它是别名(并且语言规范支持=> 转换)。 您无法转换不同类型的切片,必须手动进行。 问题是我们
问题内容: 我有一个C结构(旧的库,等等),其中包含一个C字符串,现在我需要将CFString和Swift字符串转换为该C字符串。就像是 所以我正在尝试将其分配为 但是编译器给我以下错误:无法将类型(int8,int8,int8 ....)转换为[CChar]。 问题答案: 可能的解决方案: 在该块内部,是一个指向元组的(可变)指针。该指针将按BSD库函数的预期 转换为。 它还使用了这样的事实:S
问题内容: http://play.golang.org/p/BoZkHC8_uA 我想将uint8转换为字符串,但不知道如何。 这给我 任何想法? 问题答案: 只需将其转换:
问题内容: 如何将go的类型从uint8转换为unit32? 只需代码: 〜> 6g test.go && 6l -o test test.6 && ./test test.go:10:无法将uInt8(类型[] uint8)转换为uint32类型 问题答案: 输出: Go 二进制包功能通过一系列移位实现。
问题内容: 我正在尝试将字节切片转换为GoLang中的。我找不到在线解决此问题的方法。我见过先转换为字符串然后转换为a的建议,但这似乎不起作用,它失去了它的值,最后以零结束。 例: 而且它不起作用… 问题答案: 例如, 输出: