十进制转换成二进制需要注意整型与字符型变量之间的变换
如1+'0' %d输出为49 (即'0' 的ASCII码加一)
%c输出为1 (相当与输出字符'1')
上代码:
#include<iostream>
using namespace std;
int main() {
printf("请输入一个十进制的数:\n");
int shi; cin >> shi;
char shiliu[50];//储存十六进制的每一位
int jiwei;//对十进制数分隔时保留的某位
int k = 0;
while (shi > 0) {
jiwei = shi % 16;
if (jiwei >= 10) shiliu[k++] = jiwei - 10 + 'A';//两种转化方式
else shiliu[k++] = jiwei + '0';
shi /= 16;
}
printf("该数的十六进制为:\n");
for (int i = k-1; i >=0; i--) {
cout << shiliu[i];//注意倒着输出
}
return 0;
}
感谢阅读!