Let's continue my articles about integer overflows in Go.
Here are examples
var a int
var b uint8
a = 255 + 1
b = uint8(a)
fmt.Println(b) // 0 conversion overflow
a = -1
b = uint8(a)
fmt.Println(b) // 255 conversion overflow
c, d := 255, 300
res := int8(max(c, d))
fmt.Println(res) // 44
str := "\x99" // hexadecimal representation of Trademark ASCII character: ™
fmt.Println(str[0]) // 153
fmt.Println(int8(str[0])) // -103
Top comments (2)
Small correction: the trademark character is not in ASCII since ASCII is only 7-bit. The string "\x99" is not a valid UTF-8 encoding either; so it is simply a string that contains the byte 153
Indeed, thanks