将一个十进制整数转换为二进制字符串

青旅半醒 2022-07-24 06:30 393阅读 0赞

将一个十进制整数转换为二进制字符串。下面的函数不仅仅可以转换成二进制,还可以转换为八进制十六进制等等。

  1. #include <iostream>
  2. using namespace std;
  3. char *myitoa(int num, char *str, int radix)
  4. //num是输入数字,str是存放对应的字符串,radix是进制
  5. {
  6. char* temp_arr = new char[10];
  7. int remainder, i = 0, j = 0;
  8. if (num < 0)
  9. {
  10. str[i++] = '-';
  11. num *= -1;
  12. }
  13. while (num > 0)
  14. {
  15. remainder = num % radix;
  16. if (remainder > 9)
  17. temp_arr[j++] = remainder - 10 + 'A';
  18. else
  19. temp_arr[j++] = remainder + '0';
  20. num /= radix;
  21. }
  22. while (j > 0)
  23. {
  24. str[i++] = temp_arr[--j];
  25. }
  26. str[i] = '\0';
  27. return str;
  28. }
  29. int main()
  30. {
  31. int a;
  32. char* str = new char[100];
  33. while (cin>>a)
  34. {
  35. cout << myitoa(a, str, 16)<<endl;
  36. }
  37. return 0;
  38. }

发表评论

表情:
评论列表 (有 0 条评论,393人围观)

还没有评论,来说两句吧...

相关阅读