字符串10进制、16进制、ASSIC的互转
1. 动态的10进制字符串转16进制ASSIC
#include <stdio.h>
#include <string.h>
#include <malloc.h>
char *DecToHex(char *pHex,char *pDec,int Declen)
{
int i,Hexlen = Declen *2;
char hex[] = "0123456789";
pHex = (char *)malloc(sizeof(char)*Hexlen);
for (i = 0; i < Declen; i++)
{
*pHex++ = hex[*pDec>>4];
*pHex++ = hex[*pDec++ & 0x0F];
}
*pHex = '\0';
return pHex -Hexlen;
}
int main()
{
char Dec[] = "01234";
char *pHex = NULL;
printf("-------------10进制字符串----------\n");
printf("%s\n",Dec);
printf("-------------16进制字符串----------\n");
printf("%s\n", DecToHex(pHex,Dec,strlen(Dec)));
printf("\n\n\n");
}
2. 静态的10进制字符串转16进制ASSIC
#include <stdio.h>
#include <string.h>
#include <malloc.h>
char *DecToHex(char *pHex,char *pDec,int Declen)
{
int i,Hexlen = Declen *2;
char hex[] = "0123456789";
for (i = 0; i < Declen; i++)
{
*pHex++ = hex[*pDec>>4];
*pHex++ = hex[*pDec++ & 0x0F];
}
*pHex = '\0';
return pHex -Hexlen;
}
int main()
{
char Dec[] = "01234";
char Hex[11];
printf("-------------10进制字符串----------\n");
printf("%s\n",Dec);
printf("-------------16进制字符串----------\n");
printf("%s\n", DecToHex(Hex,Dec,strlen(Dec)));
printf("\n\n\n");
}
3. ASSIC字符串转16进制字符串
使用函数需要注意的是返回的串是在堆上通过 calloc 分配的,所以,记得使用完返回值释放该块,并且将指向该块的指针 =NULL 。
char *chstohex ( char* chs )
{
char hex[16] = { '0', '1', '2', '3', '4', '5', '6', \
'7', '8','9', 'A', 'B', 'C', 'D', 'E', 'F'
};int len = strlen ( chs );
char* ascii = NULL ;
ascii = (char*)calloc ( len * 3 + 1, sizeof(char) ); // calloc ascii
int i = 0;
while( i < len )
{
ascii[i*2] = hex[(int)( (char)chs[i] / 16 )] ;
ascii[i*2 + 1] = hex[(int)( (char)chs[i] % 16 )] ;
++i;
}return ascii; // ascii 返回之前未释放
}
4. 16进制字符串转ASSIC字符串
使用函数需要注意的是返回的串是在堆上通过 calloc 分配的,所以,记得使用完返回值释放该块,并且将指向该块的指针 =NULL 。
char *hextochs ( char* ascii )
{
int len = strlen ( ascii ) ;
if( len%2 != 0 )
return NULL ;
char *chs = NULL ;
chs = (char*)calloc( len / 2 + 1, sizeof(char) ); // calloc chsint i = 0 ;
char ch[2] = {0};
while( i < len )
{
ch[0] = ( (int)ascii[i] > 64 ) ? ( ascii[i]%16 + 9 ) : ascii[i]%16 ;
ch[1] = ( (int)ascii[i + 1] > 64 ) ? ( ascii[i + 1]%16 + 9 ) : ascii[i + 1]%16 ;
chs[i/2] = (char)( ch[0]*16 + ch[1] );
i += 2;
}return chs ; // chs 返回前未释放
}
字符串10进制、16进制、ASSIC的互转相关推荐
- 【python初级】10进制与2进制8进制16进制的转换
[python初级]10进制与2进制8进制16进制的转换 背景 代码 背景 在做串口通信的时候发送的字符串都是16进制编码的. 本博客就介绍10进制与2.8.16进制的相互转换. 10进制是我们生活中 ...
- 把ASCII码的字符串转为数字的16进制
/* 函数名称:AsciiStrToHexArray 功能:把ASCII码的字符串转为数字的16进制 参数dst:存储16进制数组数据指针 参数src:存储ASCII码的字符串指针 返回值:16进制的 ...
- [工具]-C语言中字符串的形式打印16进制数据
C语言中字符串的形式打印16进制数据. 这样写,输出更直观些 #define PRINT_BUF_MAX (32) #define TAG_STRING_MAX (32) static void pr ...
- 2进制 , 8进制 , 10进制 , 16进制 , 介绍 及 相互转换 及 快速转换
为什么要使用进制数 数据在计算机中的表示,最终以二进制的形式存在 , 就是各种 <黑客帝国>电影中那些 0101010- 的数字 ; 我们操作计算机 , 实际 就是 使用 程序 和 软件 ...
- C# 数据互转 16进制16进制字符串字符串
1.字符串过滤 or 提取字符串 提取字符串:在C# .net开发中 "ToString()"方法是最常见的,用于将文本转为字符串: 字符串过滤:在处理字符串数据或者hex数据时, ...
- 2进制10进制16进制负数的转换
2进制10进制16进制之间的转换,包含负数. 前言:转换原则 16进制[A-F]与10进制.2进制转义表 一:2进制转16进制 二: 2进制中的负数如何转换成16进制 1.先写成正数的二进制 2. 取 ...
- c语言2进制16进制 表格,标题:整数进制转换(十六进制,十进制,二进制)--表格法...
标题:整数进制转换(十六进制,十进制,二进制)--表格法 在计算机里,最基本的存储单位为字节(Byte,常说的大B),1个字节包含8位(bit,常说的小b).计算机的数据就是一个字节一个字节的形式存储 ...
- C语言中转义字符的使用——8进制16进制转义字符
文章目录 C语言中8进制16进制转义字符的使用 什么是转义字符 常用的转义字符见下表 八进制与十六进制转义字符的使用 C语言中8进制16进制转义字符的使用 什么是转义字符 C语言允许一种特殊形式的字符 ...
- java中 8进制 10进制 2进制 16进制 相互转换
十进制转成十六进制: Integer.toHexString(int i) 十进制转成八进制 Integer.toOctalString(int i) 十进制转成二进制 Integer.toBinar ...
- python将16进制字符串转换为整数_Python 16进制与字符串的转换
电脑上装了Python2.7和3.3两个版本,平时运行程序包括在Eclipse里面调试都会使用2.7,但是由于某些原因在cmd命令行中输入python得到的解释器则是3.3, 一直没对此做处理,因为这 ...
最新文章
- 时装搭配_时装搭配修身T恤搭配紧身牛仔裤,时尚的穿搭,尽显时尚领导者
- Java 如何优雅的实现时间控制
- innerHTML与innerText
- linux 拆分文件 多个,linux – 如何拆分文件并保留每个部分的第...
- 左手价格战右手结盟 巨头加码云计算市场洗牌在即
- centos7 network网络服务重启报错failed to start lsb
- python模块time_Python模块:time模块详解(转)
- ATL offsetofclass 的工作原理
- mysql增删改查扩展_MySQL(增删改查补充)
- 05-01 docker 介绍
- JS----正则表达式
- 老板看似表面风光,可能还没有员工赚得多
- 的谐音非诚勿扰_《菲诚勿扰》全网通缉24位女嘉宾
- react组件卸载调用的方法_React组件如何还能跑得再快一点
- eclipse安装ADT插件
- CentOS在VMware上的安装和配置以及Xshell和Xftp的连接
- python字典保存为文件_关于python:如何将字典列表保存到文件中?
- [USACO10HOL]牛的政治Cow Politics
- 微信公众号01: ase实现access_token的存储和被动刷新
- 计算机的码片是指什么作用,码片速率
热门文章
- 李兰娟院士等新冠病毒鸡尾酒疗法研究取得新进展
- 国际上首次报道的非人灵长类胰岛衰老的单细胞转录组图谱
- Moody Photoshop Panel for mac(ps专业色彩调色扩展面板)
- Forbidden You don't have permission to access / on this server.解决方法
- java绘制半透明图片_如何使绘制的图像在Java中透明
- pythongui界面复选框数值选择并求和_如何使用Python从图像中分离复选框按钮和复......
- ThinkPHP6项目基操(13.实战部分 项目中的自定义异常处理总结 错误页面API错误)
- Java笔记-获取自己资源文件中的配置文件(打包成jar包为其他包所引用也能获取)
- Spring Boot笔记-logback-spring.xml获取application.properties中的变量
- Java笔记-Spring Boot JDBC连接Oracle数据库