Đoạn code này mình chạy thì lỗi phần đổi nhị phân và hexa, nó toàn ra kí tự linh tinh. Mình đã in thử từng kí tự bin[i] trong mảng thì đúng là 0 và 1 nhưng khi return thì lại sai. Mọi người có thể giúp mình đc không

Cho mình hỏi thêm là có thể áp dụng hàm itoa vào bài này không. Nếu đc thì áp dụng trong hàm thế nào ạ.

C++ Code:
  1. #include<stdio.h>
  2. #include<iostream>
  3. #include<stdlib.h>
  4. #include<math.h>
  5. #include<string.h>
  6. using namespace std;
  7.  
  8. class MyInteger
  9. {
  10.     public:
  11.     int value;
  12.    
  13.     MyInteger(int n)
  14.     {
  15.         value=n;
  16.     }
  17.    
  18.     bool isPrime()
  19.     {
  20.         if (value==0 || value==1) return false;
  21.         if(value==2) return true;
  22.         for(int i=2;i<=sqrt(value);i++)
  23.         {
  24.             if (value%i==0) return false;
  25.         }
  26.         return true;
  27.     }
  28.    
  29.     char* toBinaryForm()
  30.     {
  31.         char bin[100];
  32.         for(int i=0;value>0;i++)
  33.         {
  34.             bin[i]=(value%2)["01"];
  35.             value/=2;
  36.         }
  37.         return bin;
  38.     }
  39.    
  40.     char* toHexaForm()
  41.     {
  42.         char hex[100];
  43.         for(int i=0;value>=16;i++)
  44.         {
  45.             hex[i]=(value%16)["0123456789ABCDEF"];
  46.             value/=16;
  47.             cout << hex[i];
  48.         }
  49.         cout << endl;
  50.         return hex;
  51.     }
  52.    
  53.     void reverse() // dao nguoc so
  54.     {
  55.        
  56.     }
  57.    
  58.     void rotateLeft(int n) // chuyen n ki tu sang trai,  12345 , n=1 => 51234
  59.     {
  60.        
  61.     }
  62. };
  63.  
  64. int main()
  65. {
  66.     MyInteger a = MyInteger(100);
  67.     cout << "My integer: " << a.value << endl;
  68.     if(a.isPrime())
  69.         cout << " * Is prime" << endl;
  70.     else cout << " * Is not prime" << endl;
  71.    
  72.     cout << " * To Binery: ";
  73.     cout <<a.toBinaryForm(); cout << endl;
  74.     cout << " * To Hexa: ";
  75.     cout << a.toHexaForm(); cout << endl;
  76.    
  77.     system("pause");
  78. }