整数十进制转换为二进制和十六进制
2016-08-12 22:02
225 查看
#include <stdio.h> #include <stdlib.h> char* DecToBin(int num) { char* buffer = (char*)malloc(33*sizeof(char)); char* temp = buffer; int n = 0; for (int i = 0; i < 32; i++) { n = num & (1 << (31 - i)); n = n >> (31 - i); temp[i] = (n == 0) ? '0' : '1'; } buffer[32] = '\0'; return buffer; } char* DecToHex( int num) { char buffer[9]=""; char* result = (char*)malloc(11); //十六进制开头 result[0] = '0'; result[1] = 'x'; char* temp = result + 2; int i = 0; int j = 0; while ( i < 8 && num) { if (num % 16 > 9) buffer[i++]= num % 16 - 10 + 'A'; else buffer[i++]= num % 16 + '0'; num = num / 16; } //翻转 for (j = 0; j < i; j++) temp[j] = buffer[i - j - 1]; temp[j] = '\0'; return result; } int main() { char *p1 = nullptr; char *p2 = nullptr; int num = 0; printf("输入十进制数: "); scanf_s("%d", &num); p1 = DecToBin(num); p2 = DecToHex(num); printf("二进制: %s\n", p1); printf("十六进制: %s\n", p2); free(p1); free(p2); p1 = nullptr; p2 = nullptr; system("pause"); return 0; }
测试:
相关文章推荐
- java: 查表法将十进制整数转换成二进制、八进制、十六进制
- 软考必备1——二进制、十进制、十六进制和八进制之间的转换
- java中十进制转换为二进制、八进制和十六进制
- 二进制、八进制、十进制、十六进制之间转换
- C#十进制 转换成二进制十六进制 八进制
- 二进制、八进制、十进制、十六进制之间的转换
- [JAVA]二进制,八进制,十六进制,十进制间进行相互转换
- 二进制、八进制、十进制、十六进制之间转换
- 在BASH下简单实现十进制到二进制和十六进制的转换
- 二进制、八进制、十进制和十六进制的互相转换
- JS中字符问题(二进制/十进制/十六进制及ASCII码之间的转换)
- [ActionScript 3.0] 十进制与二进制,十六进制等数据之间的相互转换
- 十进制转换成二进制、八进制、十六进制的通用方法
- 二进制、十进制以及十六进制之间的相互转换
- 二进制、八进制、十进制、十六进制之间转换
- 十进制与十六进制、二进制、八进制之间的转换(Java)
- 使用移位操作把十进制转换为二进制与十六进制字符串输出
- C# 二进制 十进制 十六进制 相互转换
- 二进制、八进制、十进制、十六进制之间转换 &lt;转&gt;
- 我的Java开发学习之旅------>二进制、八进制、十进制、十六进制之间转换