c语言二进制转十六进制编程,哪位大神有 二进制转十六进制C语言程序
滿意答案
qraalapke
2017.04.12
采納率:52%????等級:8
已幫助:162人
#include?
#include?
void?convert(char?*input,?char?*output)
{
int?len1?=?strlen(input);?//輸入二進制數位數
int?pos?=?len1?/?4?+?1;?//輸出十六進制數的位數
if?(len1?%?4?==?0)
{
pos?=?pos?-?1;
}
int?j?=?0;
while?(len1>0)
{
char?sum?=?0;
for?(int?i=0;?i<4?&&?len1>0;?i++,?len1--)?//從最后起每4位算一次值
{
sum?=?sum?+?(input[len1-1]-'0')*pow(2,?i);
}
//?轉換成16進制數表示
sum?=?sum?+?'0';
if?('9'
{
sum?=?sum?+?7;
}
else?if?(sum?>?'9'?+?6)
{
printf("您輸入的不是正確的2進制數!\n");
exit(0);
}
//十六進制數放到output數組相應位置
output[--pos]?=?sum;
}
}
int?main()
{
int?groupNum?=?0;
char?total[1024]?=?{0};
scanf("%d",?&groupNum);
for?(int?i=1;?i<=groupNum;?i++)
{
char?input[1024]?=?{0};
char?output[256]?=?{0};
fflush(stdin);?//記得清楚輸入緩沖區,否則每次回車會影響
gets(input);
convert(input,?output);
char?format[32]?=?{0};
sprintf(format,?"\nCase?%d:?",?i);
strcat(total,?format);
strcat(total,?output);
}
printf("%s\n",?total);
}
01分享舉報
總結
以上是生活随笔為你收集整理的c语言二进制转十六进制编程,哪位大神有 二进制转十六进制C语言程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 双向链表操作c语言 函数,c语言 双向
- 下一篇: webdriver 的三种等待方式