Advertisement
paperline27

BinarytoHex

Jan 23rd, 2024
1,102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.63 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. // Fungsi untuk mengonversi empat bit biner ke karakter heksadesimal
  6. char binaryToHex(char* binary) {
  7.     int decimal = strtol(binary, NULL, 2);
  8.  
  9.     if (decimal >= 0 && decimal <= 9) {
  10.         return '0' + decimal;
  11.     } else if (decimal >= 10 && decimal <= 15) {
  12.         return 'A' + (decimal - 10);
  13.     } else {
  14.         return '\0'; // Mengembalikan karakter nol jika konversi tidak valid
  15.     }
  16. }
  17.  
  18. // Fungsi untuk mengonversi bilangan biner ke heksadesimal
  19. void binaryToHexadecimal(const char* binaryString) {
  20.     printf("Binary: %s\nHexadecimal: ", binaryString);
  21.  
  22.     // Menambahkan padding nol jika panjang biner tidak kelipatan 4
  23.     int padding = 4 - (strlen(binaryString) % 4);
  24.     char paddedBinary[256];
  25.     strcpy(paddedBinary, binaryString);
  26.     for (int i = 0; i < padding; i++) {
  27.         strcat(paddedBinary, "0");
  28.     }
  29.  
  30.     // Mengonversi setiap blok empat bit ke karakter heksadesimal
  31.     for (int i = 0; i < strlen(paddedBinary); i += 4) {
  32.         char fourBits[5];
  33.         strncpy(fourBits, paddedBinary + i, 4);
  34.         fourBits[4] = '\0';
  35.  
  36.         char hexChar = binaryToHex(fourBits);
  37.         if (hexChar != '\0') {
  38.             printf("%c", hexChar);
  39.         } else {
  40.             printf("Bilangan biner tidak valid.\n");
  41.             return;
  42.         }
  43.     }
  44.  
  45.     printf("\n");
  46. }
  47.  
  48. int main() {
  49.     char input[256];
  50.  
  51.     // Meminta input dari pengguna
  52.     printf("Masukkan bilangan biner: ");
  53.     scanf("%s", input);
  54.  
  55.     // Memanggil fungsi untuk mengonversi biner ke heksadesimal
  56.     binaryToHexadecimal(input);
  57.  
  58.     return 0;
  59. }
  60.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement