В некоторых случаях целочисленные значения могут быть представлены не только в десятичной системе. Для простой конвертации значений используется пакет strconv
.
Как конвертировать числа в другую систему счисления?
1. Создайте файл convert.go
со следующим содержимым:
Рекомендуем вам супер TELEGRAM канал по Golang где собраны все материалы для качественного изучения языка. Удивите всех своими знаниями на собеседовании! 😎
Мы публикуем в паблике ВК и Telegram качественные обучающие материалы для быстрого изучения Go. Подпишитесь на нас в ВК и в Telegram. Поддержите сообщество Go программистов.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
package main import ( "fmt" "strconv" ) const bin = "10111" const hex = "1A" const oct = "12" const dec = "10" const floatNum = 16.123557 func main() { // Конвертация двоичного значения в шестнадцатеричное v, _ := ConvertInt(bin, 2, 16) fmt.Printf("Двоичное значение %s конвертировано в шестнадцатеричное: %s\n", bin, v) // Конвертация шестнадцатеричного значения в десятичное v, _ = ConvertInt(hex, 16, 10) fmt.Printf("Шестнадцатеричное значение %s конвертировано в десятичное: %s\n", hex, v) // Конвертация восьмеричного значения в шестнадцатеричное v, _ = ConvertInt(oct, 8, 16) fmt.Printf("Восьмеричное значение %s конвертировано в шестнадцатеричное: %s\n", oct, v) // Конвертация десятичного значения в восьмеричное v, _ = ConvertInt(dec, 10, 8) fmt.Printf("Десятичное значения %s конвертировано в восьмеричное: %s\n", dec, v) //... по аналогии можно сделать // любую конвертацию. } // ConvertInt конвертирует значение из одной системы счисления // в другую, которая указана в toBase func ConvertInt(val string, base, toBase int) (string, error) { i, err := strconv.ParseInt(val, base, 64) if err != nil { return "", err } return strconv.FormatInt(i, toBase), nil } |
2. Запустите код в терминале через go run convert.go
;
3. Посмотрите на вывод:
1 2 3 4 |
Двоичное значение 10111 конвертировано в шестнадцатеричное: 17 Шестнадцатеричное значение 1A конвертировано в десятичное: 26 Восьмеричное значение 12 конвертировано в шестнадцатеричное: a Десятичное значения 10 конвертировано в восьмеричное: 12 |
Пакет strconv — Функции ParserInt() и FormatInt()
Пакет strconv
предоставляет функции ParseInt
и FormatInt
, что являются вспомогательными функциями. Функция ParseInt
может парсировать целочисленное значение любой системы счисления. С другой стороны, функция FormatInt
может форматировать целочисленное значение в любую указанную систему счисления.
Также возможно парсировать строковое представление целого числа во встроенный тип int64
и, следовательно, форматирует строку парсированного целого числа в данное представление базы.
Администрирую данный сайт с целью распространения как можно большего объема обучающего материала для языка программирования Go. В IT с 2008 года, с тех пор изучаю и применяю интересующие меня технологии. Проявляю огромный интерес к машинному обучению и анализу данных.
E-mail: vasile.buldumac@ati.utm.md
Образование
Технический Университет Молдовы (utm.md), Факультет Вычислительной Техники, Информатики и Микроэлектроники
- 2014 — 2018 Universitatea Tehnică a Moldovei, ИТ-Инженер. Тема дипломной работы «Автоматизация покупки и продажи криптовалюты используя технический анализ»
- 2018 — 2020 Universitatea Tehnică a Moldovei, Магистр, Магистерская диссертация «Идентификация человека в киберпространстве по фотографии лица»