2004年08月31日
rawデータをASCII文字に変換してみる
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char chex2bin(char *src)
{
if ( src[0] != 0x33 && src[0] != 0x34 && src[0] != 0x36 )
return -1;
if ( src[0] == 0x33 )
{
if ( src[1] >= '0' && src[1] <= '9')
return src[1];
}
else
{
if ( src[1] >= '1' && src[1] <= '6')
return src[1] + 0x10;
}
return -1;
}
int shex2bin(char *src, int len, char *dest)
{
int i;
char buf;
for ( i = 0; i < len; i += 2)
{
buf = chex2bin(src + i);
if ( buf == -1 )
return -1;
memset(dest, buf, 1);
dest++;
}
return 0;
}
int main(int argc, char *argv[])
{
char src[100]="61414243444546";
char buf[1024];
memset(buf, 0, sizeof(buf));
printf("%d\n", shex2bin(src, strlen(src), buf));
printf("%s\n", buf);
return 0;
}
ASCII文字をrawデータに変換してみる
Base64エンコード・デコードを書いてみる