字符串转二进制和十六进制字符串
问题描述:
输入任意长的可见字符,将该字符串的数据转为字符型的二进制01和十六进制0-f的字符串在终端显示。
示例:
输入:abcdef
在屏幕输出二进制:01100001 01100010 01100011 01100100 01100101 01100110
十六进制:616263646566
答
代码如下:
#include <stdio.h>
//转2进制字符串
void fun(char ch,char buf[])
{
int i,t,n=7;
for(i=0;i<8;i++)
buf[i] = '0';
t = ch;
while(t)
{
buf[n] = '0'+t%2;
t/=2;
n--;
}
buf[8] = 0;
}
int main()
{
int i = 0;
char buf[1000]={0};
char tmp[10]={0};
gets(buf);
while(buf[i])
{
fun(buf[i],tmp);
if(i==0)
printf("%s",tmp);
else
printf(" %s",tmp);
i++;
}
printf("\n");
i=0;
while(buf[i])
{
printf("%0x",buf[i]);
i++;
}
return 0;
}
答
输入结束标志是什么?换行?