Спецификация языка программирования Go
Версия от 14 мая 2019 г.
Целочисленные литералы
Целочисленный литерал - это последовательность цифр, представляющих целочисленную константу.Необязательный префикс устанавливает недесятичное основание: 0b или 0B для двоичного, 0, 0o или 0O для восьмеричного и 0x или 0X для шестнадцатеричного.Одиночный 0 считается десятичным нулем.В шестнадцатеричных литералах буквы от a до f и от A до F представляют значения от 10 до 15.
Для удобства чтения символ подчеркивания _ может появляться после базового префикса или между последовательными цифрами;такие подчеркивания не изменяют значение литерала.
int_lit = decimal_lit | binary_lit | octal_lit | hex_lit .
decimal_lit = "0" | ( "1" … "9" ) [ [ "_" ] decimal_digits ] .
binary_lit = "0" ( "b" | "B" ) [ "_" ] binary_digits .
octal_lit = "0" [ "o" | "O" ] [ "_" ] octal_digits .
hex_lit = "0" ( "x" | "X" ) [ "_" ] hex_digits .
decimal_digits = decimal_digit { [ "_" ] decimal_digit } .
binary_digits = binary_digit { [ "_" ] binary_digit } .
octal_digits = octal_digit { [ "_" ] octal_digit } .
hex_digits = hex_digit { [ "_" ] hex_digit } .
Для Go 1.13 и более поздних версий используйте двоичный или шестнадцатеричный код:
package main
import "fmt"
func main() {
b := byte(0b00010011)
fmt.Printf("%08b %02x\n", b, b)
x := byte(0x13)
fmt.Printf("%08b %02x\n", x, x)
}
Выходные данные:
00010011 13
00010011 13
Для Go 1.12 и более ранних версий используйте шестнадцатеричное значение:
package main
import "fmt"
func main() {
x := byte(0x13)
fmt.Printf("%08b %02x\n", x, x)
}
Выходные данные:
00010011 13