Contents

Hex to Dec

Konwertuje system szesnastkowy na dziesiętny

Hex2Dec to prosty, ale potężny konwerter szesnastkowy (HEX) na dziesiętny (DEC).

🛠️ Konwerter HEX na DEC

1
2
3
4
5
6
7
8
$$\   $$\ $$$$$$$$\ $$\   $$\  $$$$$$\  $$$$$$$\  $$$$$$$$\  $$$$$$\  
$$ |  $$ |$$  _____|$$ |  $$ |$$  __$$\ $$  __$$\ $$  _____|$$  __$$\ 
$$ |  $$ |$$ |      \$$\ $$  |\__/  $$ |$$ |  $$ |$$ |      $$ /  \__|
$$$$$$$$ |$$$$$\     \$$$$  /  $$$$$$  |$$ |  $$ |$$$$$\    $$ |      
$$  __$$ |$$  __|    $$  $$<  $$  ____/ $$ |  $$ |$$  __|   $$ |      
$$ |  $$ |$$ |      $$  /\$$\ $$ |      $$ |  $$ |$$ |      $$ |  $$\ 
$$ |  $$ |$$$$$$$$\ $$ /  $$ |$$$$$$$$\ $$$$$$$  |$$$$$$$$\ \$$$$$$  |
\__|  \__|\________|\__|  \__|\________|\_______/ \________| \______/ 

📚 Zawartość

🚀 Aplikacja

Konwerter HEX na DEC to proste, ale potężne narzędzie wiersza poleceń napisane w języku Go (Golang), które konwertuje wartości szesnastkowe (HEX) na wartości dziesiętne (DEC). Obsługuje zarówno pojedyncze wartości HEX, jak i przetwarzanie wsadowe z pliku. Narzędzie jest przeznaczone dla programistów, inżynierów i wszystkich osób pracujących z systemami numerycznymi.

🔑 Główne cechy:

  • ✅ Konwertuj pojedyncze wartości HEX na DEC.
  • ✅ Przetwarzaj wiele wartości HEX z pliku.
  • ✅ Zapisywanie wyników do pliku wyjściowego.
  • ✅ Łatwy w użyciu interfejs wiersza poleceń.
  • ✅ Lekki i szybki.
  • ✅ Uruchamiany w konsoli (CMD/CLI).

💡 Korzystanie

🤖 Automatyzacja:

Program eliminuje potrzebę ręcznej konwersji wartości HEX na DEC, co oszczędza czas i zmniejsza ryzyko błędów.

🎛️ Elastyczność:

Obsługuje zarówno pojedyncze wartości, jak i pliki z wieloma wartościami HEX.

🛠️ Prostota:

Łatwość użytkowania dzięki przejrzystemu interfejsowi tekstowemu i obsłudze flag.

🔒 Bezpieczeństwo:

Zawiera obsługę błędów dla nieprawidłowych danych wejściowych.


📥 Instalacja

Wymagania wstępne

  • Go (Golang) zainstalowany w systemie. Możesz go pobrać tutaj.

Kroki

  1. Sklonuj repozytorium:
1
git clone https://github.com/lukaszwojcikdev/hex2dec_converter.git
  1. Przejdź do katalogu projektu:
1
cd hex2dec_converter
  1. Zbuduj projekt:
1
go build -o hex2dec_converter

lub

1
go build hex2dec_converter.go
  1. Uruchom plik wykonywalny:
1
./hex2dec_converter

🛠️ Użycie

Konwertuj pojedynczą wartość HEX

Aby przekonwertować pojedynczą wartość HEX na DEC, użyj -dh flaga:

1
./hex2dec_converter -dh 583DFD

Dane wyjściowe:

1
5787133

Konwertuj wartości HEX z pliku

Aby przekonwertować wiele wartości HEX z pliku, użyj flagi -dhf:

1
./hex2dec_converter -dhf input.txt
  • Format pliku wejściowego: Wartości HEX powinny być rozdzielone przecinkami (,), np. 108AB2,1BBBFE,6386DE.
  • Dane wyjściowe: Wyniki zostaną zapisane w pliku o nazwie input_dec.txt.

Wyświetl pomoc

Aby wyświetlić menu pomocy, użyj flagi -h:

1
./hex2dec_converter -h

Wyświetl informacje o programie

Aby wyświetlić informacje o programie, użyj flagi -i:

1
./hex2dec_converter -i

📄 Dokumentacja

Flagi:

1
2
3
4
-h - Wyświetl pomoc.
-i - Wyświetl informacje o programie.
-dh - Konwertuj pojedynczą wartość HEX na DEC.
-dhf - Konwertuj wartości HEX z pliku na DEC i zapisz wynik do nowego pliku.

Format pliku wejściowego: Wartości HEX w pliku powinny być rozdzielone przecinkami (,) bez spacji.

Przykład:

1
108AB2,1BBBFE,6386DE

Aby uzyskać szczegółową dokumentację, odwiedź oficjalną stronę projektu: https://lukaszwojcik.eu/hex2dec.html


🛠️ Narzędzia

Podczas opracowywania HEX2DEC i tworzenia tego pliku README.md użyłem następujących narzędzi i oprogramowania:

  • IrfanView - Użyty do zmiany rozmiaru obrazów.
  • TinyPNG - Użyty do kompresji obrazów w celu zmniejszenia rozmiaru pliku bez utraty jakości.
  • Notepad++ - Edytor kodu używany do pisania projektu.
  • Go (Golang) - Podstawowy język programowania użyty do opracowywania konwertera HEX2DEC.
  • Carbon - Użyty do tworzenia pięknej składni kodu źródłowego jako obraz PNG.
  • GitHub - Użyty do kontroli wersji i hostowania repozytorium projektu.
  • MD5 - Użyty do generowania pliku skrótu MD5.
  • Generator ASCII - Użyty do tworzenia loga ASCII dla projektu.
  • Shields.io - Użyty do generowania odznak dla pliku README.md (np. wersja, licencja itp.).
  • Markdown Online - Użyty do pisania i formatowania pliku README.md.
  • Ikony Unicode - Zbiór ikon Unicode wykorzystany do akapitów ## lub ###.
  • Stable Diffusion - Użyty do generowania obrazu okładki.
  • 🎵 Muzyka ZHU - Relaksacyjna muzyka słuchana podczas projektowania Hex2Dec.

🐛 Błędy

Jeśli napotkasz jakieś błędy lub problemy, zgłoś je tutaj


👨‍ Autor


‍💻 Kod źródłowy

  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
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
package main

import (
    "flag"
    "fmt"
    "log"
    "os"
    "strconv"
    "strings"
)

func hexToDec(hex string) (string, error) {
    dec, err := strconv.ParseInt(hex, 16, 64)
    if err != nil {
        return "", fmt.Errorf("Invalid HEX value: %s", hex)
    }
    return strconv.FormatInt(dec, 10), nil
}

func hexToDecFile(fileName string) error {
    data, err := os.ReadFile(fileName)
    if err != nil {
        return fmt.Errorf("failed to read file: %w", err)
    }
    hexValues := strings.Split(strings.TrimSpace(string(data)), ",")
    var decValues []string
    for _, hex := range hexValues {
        dec, err := hexToDec(hex)
        if err != nil {
            return fmt.Errorf("conversion error: %w", err)
        }
        decValues = append(decValues, dec)
    }
    outputFileName := strings.TrimSuffix(fileName, ".txt") + "_dec.txt"
    outputData := []byte(strings.Join(decValues, ","))
    err = os.WriteFile(outputFileName, outputData, 0644)
    if err != nil {
        return fmt.Errorf("failed to write file: %w", err)
    }
    return nil
}

func printHelp() {
    fmt.Println("HEX to DEC Converter v1.0c")
    fmt.Println("░█░█░█▀▀░█░█░▀▀▄░█▀▄░█▀▀░█▀▀")
    fmt.Println("░█▀█░█▀▀░▄▀▄░▄▀░░█░█░█▀▀░█░░")
    fmt.Println("░▀░▀░▀▀▀░▀░▀░▀▀▀░▀▀░░▀▀▀░▀▀▀")
    fmt.Println("")
    fmt.Println("(c) by Lukasz Wojcik 2024, 2025")
    fmt.Println("Use: hex2dec [flag] [argument]")
    fmt.Println("")
    fmt.Println("Flags:")
    fmt.Println(" -h   Display help")
    fmt.Println(" -i   Displays program information")
    fmt.Println(" -dh  Converts a HEX value to DEC ")
    fmt.Println(" -dhf Converts HEX values from file and writes DEC to file")
    fmt.Println("")
    fmt.Println("Examples of use:")
    fmt.Println(" hex2dec -dh 583DFD")
    fmt.Println(" hex2dec -dhf input.txt")
    fmt.Println("")
    fmt.Println("HEX values in the file should be separated by a comma (,) with no 'space'.")
    fmt.Println("Example of the HEX system arrangement in the 'inside.txt' file:")
    fmt.Println("108AB2,1BBBFE,6386DE,...,...")
}

func printProgramInfo() {
    fmt.Println("Hex2Dec - HEX to DEC Converter")
    fmt.Println("Author: Lukasz Wojcik")
    fmt.Println("Version: 1.0c")
    fmt.Println("Year: 2025")
    fmt.Println("Site: https://lukaszwojcik.eu/hex2dec.html")
    fmt.Println("Source Code: https://github.com/lukaszwojcikdev/hex2dec_converter.git")
}

func main() {
    convertHex := flag.String("dh", "", "Converts HEX value to DEC")
    help := flag.Bool("h", false, "Displays help")
    info := flag.Bool("i", false, "Displays information about the program")
    convertHexFile := flag.String("dhf", "", "Converts HEX values from a file and writes DEC to the file")
    flag.Parse()

    if *help {
        printHelp()
        return
    }

    if *info {
        printProgramInfo()
        return
    }

    if *convertHex != "" {
        dec, err := hexToDec(*convertHex)
        if err != nil {
            log.Fatal(err)
        }
        fmt.Println(dec)
        return
    }

    if *convertHexFile != "" {
        err := hexToDecFile(*convertHexFile)
        if err != nil {
            log.Fatal(err)
        }
        fmt.Println("Conversion completed successfully. Results saved to file: input_dec.txt")
        return
    }
    printHelp()
}

📝 Opis

  1. hexToDec Funkcja konwertuje pojedynczą wartość HEX na DEC.
1
2
3
4
5
6
7
func hexToDec(hex string) (string, error) {
    dec, err := strconv.ParseInt(hex, 16, 64)
    if err != nil {
        return "", fmt.Errorf("Invalid HEX value: %s", hex)
    }
    return strconv.FormatInt(dec, 10), nil
}

Parametry:

hex: ciąg znaków reprezentujący liczbę w systemie szesnastkowym.

Zwraca: Wartość w systemie dziesiętnym jako string. Błąd, jeśli wartość HEX jest nieprawidłowa.

Działanie: Używa funkcji strconv.ParseInt do konwersji HEX na DEC. Jeśli wystąpi błąd, zwraca odpowiedni komunikat.

  1. hexToDecFile Funkcja konwertuje wartości HEX zapisane w pliku na wartości DEC i zapisuje wynik do nowego pliku.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
func hexToDecFile(fileName string) error {
    data, err := os.ReadFile(fileName)
    if err != nil {
        return fmt.Errorf("failed to read file: %w", err)
    }
    hexValues := strings.Split(strings.TrimSpace(string(data)), ",")
    var decValues []string
    for _, hex := range hexValues {
        dec, err := hexToDec(hex)
        if err != nil {
            return fmt.Errorf("conversion error: %w", err)
        }
        decValues = append(decValues, dec)
    }
    outputFileName := strings.TrimSuffix(fileName, ".txt") + "_dec.txt"
    outputData := []byte(strings.Join(decValues, ","))
    err = os.WriteFile(outputFileName, outputData, 0644)
    if err != nil {
        return fmt.Errorf("failed to write file: %w", err)
    }
    return nil
}

Parametry: fileName: nazwa pliku wejściowego zawierającego wartości HEX, oddzielone przecinkami.

Zwraca: error: błąd, jeśli operacja odczytu, konwersji lub zapisu nie powiedzie się.

Działanie: Odczytuje zawartość pliku. Rozdziela wartości HEX po przecinkach. Konwertuje każdą wartość HEX na DEC za pomocą funkcji hexToDec. Zapisuje wyniki do nowego pliku o nazwie nazwa_pliku_dec.txt.

  1. printHelp Funkcja wyświetla pomoc dla użytkownika.
1
2
3
4
func printHelp() {
    fmt.Println("HEX to DEC Converter v1.0c")
    ...
}

Działanie: Wyświetla szczegółowe informacje o dostępnych flagach, argumentach oraz przykładach użycia programu. Informuje, jak powinny wyglądać dane wejściowe w pliku.

  1. printProgramInfo Funkcja wyświetla informacje o programie.
1
2
3
4
func printProgramInfo() {
    fmt.Println("Hex2Dec - HEX to DEC Converter")
    ...
}

Działanie: Wyświetla nazwę programu, autora, wersję, rok wydania oraz linki do strony i repozytorium z kodem źródłowym.

  1. main Funkcja główna programu, obsługująca logikę sterującą na podstawie flag przekazanych przez użytkownika.
 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
func main() {
    convertHex := flag.String("dh", "", "Converts HEX value to DEC")
    help := flag.Bool("h", false, "Displays help")
    info := flag.Bool("i", false, "Displays information about the program")
    convertHexFile := flag.String("dhf", "", "Converts HEX values from a file and writes DEC to the file")
    flag.Parse()

    if *help {
        printHelp()
        return
    }

    if *info {
        printProgramInfo()
        return
    }

    if *convertHex != "" {
        dec, err := hexToDec(*convertHex)
        if err != nil {
            log.Fatal(err)
        }
        fmt.Println(dec)
        return
    }

    if *convertHexFile != "" {
        err := hexToDecFile(*convertHexFile)
        if err != nil {
            log.Fatal(err)
        }
        fmt.Println("Conversion completed successfully. Results saved to file: input_dec.txt")
        return
    }
    printHelp()
}

Działanie:

Definiuje flagi:

-dh: konwertuje pojedynczą wartość HEX na DEC.

-h: wyświetla pomoc (printHelp).

-i: wyświetla informacje o programie (printProgramInfo).

-dhf: konwertuje wartości HEX z pliku na DEC i zapisuje do pliku.

Na podstawie podanych flag wykonuje odpowiednie operacje:

➡️Wyświetla pomoc lub informacje o programie.
➡️Konwertuje pojedynczą wartość HEX na DEC.
➡️Przetwarza plik z wartościami HEX.

Jeśli żadna flaga nie zostanie podana, wyświetla pomoc.


📝 Podsumowanie

Konwerter HEX na DEC to wszechstronne narzędzie do konwersji wartości szesnastkowych na wartości dziesiętne. Został zaprojektowany tak, aby był prosty, wydajny i łatwy w użyciu, dzięki czemu idealnie nadaje się dla programistów, inżynierów i studentów pracujących z systemami liczbowymi.


⚠️ Zastrzeżenie

Korzystając z tego oprogramowania, zgadzasz się na te warunki. Oprogramowanie jest dostarczane w stanie „tak jak jest” i korzystasz z niego na własne ryzyko. Autor nie ponosi żadnej odpowiedzialności za szkody lub problemy spowodowane korzystaniem z tego oprogramowania.


📥 Pobierz

Możesz pobrać najnowszą wersję projektu TUTAJ 👇

Do pobrania
Hex2Dec.zip
Source_Code
MD5
Carbon

📜 Licencja

Ten projekt jest licencjonowany na podstawie Licencji MIT


Miłego korzystania z konwertera HEX na DEC! 🚀