#include <stdio.h>
#include <string.h>
int asc2hex(char *s, char *r, int len);
int hex2asc(char *s, char *r, int len);
int main(int argc, char * argv[]){
char result[128] = {0};
char source[128] = {0};
char result1[128] = {0};
char source1[128] = {0};
printf("=====argv[1] = %s===length=%d==\n", argv[1], (int)strlen(argv[1]));
strncpy(source, argv[1], strlen(argv[1]));
printf("=====argv[1] = %s\n", source);
//asc2hex(source, result, sizeof(128));
hex2asc(source, result, sizeof(128));
printf("=====result ======= %s\n", result);
}
int hex2asc(char *s, char *r, int len)
{
char m;
int slen = strlen(s);
int i, j, number, bit;
number = 0;
printf("====slen=%d======s=%s====\n", slen, s);
for(i = 0; i < slen; i = i + 2, r++){
number = 0;
printf("bbbbbbbbbbbbbb\n");
for(j = 0; j < 2; j++, s++){
if( *s >= '0' && *s <= '9' ){
bit = (unsigned int)(*s) - '0';
printf("===aa==bit = %d====\n", bit);
} else {
bit = (unsigned int)(*s) - 55 ;
printf("===bb==bit = %d====\n", bit);
}
if( j == 0 ){
number = bit * 16;
} else {
number += bit;
}
}
*r = (char)number;
printf("================char = %c ==========\n", (char)number);
}
}
int asc2hex(char * s, char * r, int len)
{
char bit;
int slen, i, j;
slen = strlen(s);
if(slen + 1 < len / 2){
return -1;
}
printf("====slen = %d ====\n", slen);
for(i = 0; i < slen; i++, s++){
printf("=====22 %c===%u====\n", *s, *s);
for(j = 0; j < 2; j++, r++){
if( j == 1){
bit = (unsigned int)(*s) % 16;
} else {
bit = (unsigned int)(*s) / 16;
}
if( bit >= 0 && bit <= 9){
*r = bit + '0';
} else {
*r = bit + 55;
}
printf("=====char = %c =====\n", *r);
}
}
return 0;
}
#include <string.h>
int asc2hex(char *s, char *r, int len);
int hex2asc(char *s, char *r, int len);
int main(int argc, char * argv[]){
char result[128] = {0};
char source[128] = {0};
char result1[128] = {0};
char source1[128] = {0};
printf("=====argv[1] = %s===length=%d==\n", argv[1], (int)strlen(argv[1]));
strncpy(source, argv[1], strlen(argv[1]));
printf("=====argv[1] = %s\n", source);
//asc2hex(source, result, sizeof(128));
hex2asc(source, result, sizeof(128));
printf("=====result ======= %s\n", result);
}
int hex2asc(char *s, char *r, int len)
{
char m;
int slen = strlen(s);
int i, j, number, bit;
number = 0;
printf("====slen=%d======s=%s====\n", slen, s);
for(i = 0; i < slen; i = i + 2, r++){
number = 0;
printf("bbbbbbbbbbbbbb\n");
for(j = 0; j < 2; j++, s++){
if( *s >= '0' && *s <= '9' ){
bit = (unsigned int)(*s) - '0';
printf("===aa==bit = %d====\n", bit);
} else {
bit = (unsigned int)(*s) - 55 ;
printf("===bb==bit = %d====\n", bit);
}
if( j == 0 ){
number = bit * 16;
} else {
number += bit;
}
}
*r = (char)number;
printf("================char = %c ==========\n", (char)number);
}
}
int asc2hex(char * s, char * r, int len)
{
char bit;
int slen, i, j;
slen = strlen(s);
if(slen + 1 < len / 2){
return -1;
}
printf("====slen = %d ====\n", slen);
for(i = 0; i < slen; i++, s++){
printf("=====22 %c===%u====\n", *s, *s);
for(j = 0; j < 2; j++, r++){
if( j == 1){
bit = (unsigned int)(*s) % 16;
} else {
bit = (unsigned int)(*s) / 16;
}
if( bit >= 0 && bit <= 9){
*r = bit + '0';
} else {
*r = bit + 55;
}
printf("=====char = %c =====\n", *r);
}
}
return 0;
}