VC 十六进制字符串转换为CString
来源:互联网 发布:mac进入恢复模式 编辑:程序博客网 时间:2024/05/22 10:29
VC 十六进制字符串转换为CString
#include<stdio.h>
#include<stdlib.h>
char *hex_to_ascii(char *dest, const char src[], int size)
{//0x12, 0x34 -> "1234"
char *ret = dest;
int i;
for (i = 0; i < size; i++)
{
*dest++ = "0123456789ABCDEF"[(unsigned char)src[i] >> 4];
*dest++ = "0123456789ABCDEF"[src[i] & 0xf];
}
*dest = 0;
return ret;
}
再修改下,避免对0x00做转换:
char *ascii_to_string(char *dest, const char src[], int size)
{//"1234" -> 0x12, 0x34
#define char_to_hex(ch) (('0' <= (ch) && (ch) <= '9') ? ((ch) & 0xf) : (((ch) & 0xf) + 9))
char *ret = dest;
int i = 0;
while (i < size)
{
char ch1 = src[i];
char ch2 = src[i + 1];
*dest++ = ((char_to_hex(ch1) << 4) | char_to_hex(ch2));
i += 2;
}
return ret;
}
int main()
{
char src[] = "十六进制字符串";
char dest[100];
char dest2[100];
printf("%s\n", hex_to_ascii(dest, src, sizeof (src) / sizeof (src[0])));
printf("%s\n", ascii_to_string(dest2, dest, sizeof (dest) / sizeof (dest[0])));
system("pause");
return 0;
}
#include<stdio.h>
#include<stdlib.h>
char *hex_to_ascii(char *dest, const char src[], int size)
{//0x12, 0x34 -> "1234"
char *ret = dest;
int i;
for (i = 0; i < size; i++)
{
*dest++ = "0123456789ABCDEF"[(unsigned char)src[i] >> 4];
*dest++ = "0123456789ABCDEF"[src[i] & 0xf];
}
*dest = 0;
return ret;
}
char *ascii_to_string(char *dest, const char src[])
{//"1234" -> 0x12, 0x34
#define char_to_hex(ch) (('0' <= (ch) && (ch) <= '9') ? ((ch) & 0xf) : (((ch) & 0xf) + 9))
char *ret = dest;
while (*src)
{
char ch1 = *src++;
char ch2 = *src++;
*dest++ = ((char_to_hex(ch1) << 4) | char_to_hex(ch2));
}
return ret;
int main()
{
char src[] = "十六进制字符串";
char dest[100];
char dest2[100];
printf("%s\n", hex_to_ascii(dest, src, sizeof (src) / sizeof (src[0])));
printf("%s\n", ascii_to_string(dest2, dest));
system("pause");
return 0;
}
#include<stdio.h>
#include<stdlib.h>
char *hex_to_ascii(char *dest, const char src[], int size)
{//0x12, 0x34 -> "1234"
char *ret = dest;
int i;
for (i = 0; i < size; i++)
{
*dest++ = "0123456789ABCDEF"[(unsigned char)src[i] >> 4];
*dest++ = "0123456789ABCDEF"[src[i] & 0xf];
}
*dest = 0;
return ret;
}
再修改下,避免对0x00做转换:
char *ascii_to_string(char *dest, const char src[], int size)
{//"1234" -> 0x12, 0x34
#define char_to_hex(ch) (('0' <= (ch) && (ch) <= '9') ? ((ch) & 0xf) : (((ch) & 0xf) + 9))
char *ret = dest;
int i = 0;
while (i < size)
{
char ch1 = src[i];
char ch2 = src[i + 1];
*dest++ = ((char_to_hex(ch1) << 4) | char_to_hex(ch2));
i += 2;
}
return ret;
}
int main()
{
char src[] = "十六进制字符串";
char dest[100];
char dest2[100];
printf("%s\n", hex_to_ascii(dest, src, sizeof (src) / sizeof (src[0])));
printf("%s\n", ascii_to_string(dest2, dest, sizeof (dest) / sizeof (dest[0])));
system("pause");
return 0;
}
#include<stdio.h>
#include<stdlib.h>
char *hex_to_ascii(char *dest, const char src[], int size)
{//0x12, 0x34 -> "1234"
char *ret = dest;
int i;
for (i = 0; i < size; i++)
{
*dest++ = "0123456789ABCDEF"[(unsigned char)src[i] >> 4];
*dest++ = "0123456789ABCDEF"[src[i] & 0xf];
}
*dest = 0;
return ret;
}
char *ascii_to_string(char *dest, const char src[])
{//"1234" -> 0x12, 0x34
#define char_to_hex(ch) (('0' <= (ch) && (ch) <= '9') ? ((ch) & 0xf) : (((ch) & 0xf) + 9))
char *ret = dest;
while (*src)
{
char ch1 = *src++;
char ch2 = *src++;
*dest++ = ((char_to_hex(ch1) << 4) | char_to_hex(ch2));
}
return ret;
}
http://topic.csdn.net/u/20101105/17/d9ce6cee-60ed-4b6e-bfdf-19714b869f77.html
int main()
{
char src[] = "十六进制字符串";
char dest[100];
char dest2[100];
printf("%s\n", hex_to_ascii(dest, src, sizeof (src) / sizeof (src[0])));
printf("%s\n", ascii_to_string(dest2, dest));
system("pause");
return 0;
}
- VC 十六进制字符串转换为CString
- CString字符串转换为十六进制字符串
- VC中 十六进制字符串转换为十进制数字
- VC中 十六进制字符串转换为十进制数字
- VC中 十六进制字符串转换为十进制数字
- VC中 十六进制字符串转换为十进制数字
- VC中 十六进制字符串转换为十进制数字
- 字符串转换为十六进制
- 字符串转换为十六进制
- 字符串转换为十六进制
- 字符串转换为十六进制
- [转贴]VC中 十六进制字符串转换为十进制数字
- VC中,如何将十六进制字符串转换为十进制数?
- vc 浮点数转换为内存十六进制字符串
- vc 浮点数转换为内存十六进制字符串
- VC中 十六进制字符串转换为十进制数字 转
- vc 浮点数转换为内存十六进制字符串
- VC编写代码生成GUID并转换为CString字符串
- php 父类调用子类方法
- 页面包含文件
- 为什么RGB模式印前必须转换为CMYK模式呢?
- offsetwidth的用法
- UDP的校验和
- VC 十六进制字符串转换为CString
- 关于最近的两个月
- Android基础教程(三)之-----简单的Button事件响应综合提示控件Toast的应用
- Service Manager
- 关于 ZOJ 1159
- Android基础教程(四)之-----取得手机屏幕大小DisplayMetrics的应用
- [ASP.NET] 自定义配置节及处理
- 详解CSS特定值
- SHARC21479timer总结