Ce face strconv.FormatInt
strconv.FormatInt(i, base) scrie numărul i ca text în baza base, între 2 și 36. Pentru cifrele peste 9 se folosesc literele mici a–z. FormatUint face la fel pentru numere fără semn.
Primește int64, deci un int obișnuit trebuie convertit: strconv.FormatInt(int64(n), 2). Pentru baza 10 și tipul int, strconv.Itoa este mai scurt.
Parametri
| Parametru | Descriere |
|---|---|
i |
Numărul. |
base |
Baza, între 2 și 36. Altă valoare produce panic. |
Ce returnează
Textul numărului, fără prefix (0x, 0b).
Exemple
Exemplul 1: Același număr în mai multe baze
package main
import (
"fmt"
"strconv"
)
func main() {
n := 2026
for _, baza := range []int{2, 8, 10, 16, 36} {
fmt.Printf("baza %2d: %s\n", baza, strconv.FormatInt(int64(n), baza))
}
fmt.Println(strconv.FormatInt(-255, 16))
fmt.Println(strconv.FormatUint(18446744073709551615, 10))
}
Rezultat
baza 2: 11111101010
baza 8: 3752
baza 10: 2026
baza 16: 7ea
baza 36: 1ka
-ff
18446744073709551615
Greșeli frecvente
- Dai un
intdirect:FormatInt(n, 2)nu compilează. ScrieFormatInt(int64(n), 2). - Te aștepți la prefix (
0xff) sau litere mari (FF). Pentru acestea foloseștefmt.Sprintf("%#x", n)sau"%X".
Comenzi înrudite
strconv.Atoi: Atoi transformă un text în număr întreg (int) și returnează eroare dacă nu se poate; Itoa face invers.strconv.ParseInt: Citește un întreg dintr-un text, în orice bază (2–36) și verifică dacă încape într-un anumit număr de biți.strconv.AppendInt: Adaugă un număr sau un bool, scris ca text, la sfârșitul unui []byte, fără să creeze un text intermediar.fmt.Printf: Afișează text formatat cu %d, %s, %.2f etc.; Sprintf returnează textul, Fprintf îl scrie într-un fișier sau alt Writer.