10进制和16进制 数字和ASCII码互转
10进制和16进制数转ASCII码
int hex2ascii(unsigned char *hex, int hex_len, char *text)
{char buffer[20];int cnt=0;for(cnt = 0; cnt < hex_len; cnt++){memset(buffer, 0, 20);sprintf(buffer, "%02X", hex[cnt]);strcat(text, buffer);}return hex_len;
}int dec2ascii(unsigned char *dec, int dec_len, char *text)
{char buffer[30];int cnt=0;for(cnt = 0; cnt < dec_len; cnt++){memset(buffer, 0, 30);sprintf(buffer, "%02d", dec[cnt]);strcat(text, buffer);}return dec_len;
}
16进制Ascii转16进制数组
参考
/*
函数名称:AsciiStrToHexArray
功能:把ASCII码的字符串转为数字的16进制
参数dst:存储16进制数组数据指针
参数src:存储ASCII码的字符串指针
返回值:16进制的数组数据长度
*///把字符串转为16进制数//例如: 把"1234567890abcdef" 转成12 34 56 78 90 ab cd ef
int16_t AsciiStrToHexArray(uint8_t*dst,uint8_t*src)
{uint8_t ch;uint16_t index=0;if(strlen(src) == NULL){return -1;}if(strlen(src)%2 == 0)//ASCII字符串偶数长度{for(index = 0;index < strlen(src);index++){if((src[index]>='0')&&(src[index]<='9'))//数字0-9范围{ch = src[index]-0x30;}else if((src[index]>='A')&&(src[index]<='F'))//大写字母A-F范围{ch = src[index]-0x37;}else if((src[index]>='a')&&(src[index]<='f'))//小写字母,a-f范围{ch = src[index]-0x57;}else{return -1;} if(index%2 != 0)//下标从0开始,取余数不为0则是偶数长度的数据{dst[index/2]=dst[index/2]|ch;}else{dst[index/2]=ch<<4;}}return (index / 2);//整除,把除数作为16进制数组长度返回}else{//ASCII字符串奇数长度for(index = 0;index < strlen(src);index++){if((src[index]>='0')&&(src[index]<='9'))//数字0-9范围{ch = src[index]-0x30;}else if((src[index]>='A')&&(src[index]<='F'))//大写字母A-F范围{ch = src[index]-0x37;}else if((src[index]>='a')&&(src[index]<='f'))//小写字母,a-f范围{ch = src[index]-0x57;}else{return -1;} if((index+1) == strlen(src))//奇数时,最后单独一个字符转为16进制后存储缓存{dst[index/2] = ch;}else{//不是最后一个字符if(index%2 != 0)//下标从0开始,取余数不为0则是偶数长度的数据{dst[index/2]=dst[index/2]|ch;}else{dst[index/2]=ch<<4;}}}return (index / 2+1);//不整除,把除数加1作为16进制数组长度返回}
}
10进制和16进制 数字和ASCII码互转相关推荐
- python16进制转10进制_python 字节串及10进制,16进制相关转换
进行协议解析时,总是会遇到各种各样的数据转换的问题,从二进制到十进制,从字节串到整数等等 整数之间的进制转换: 10进制转16进制: hex(16) ==> 0x10 16进制转10进制: in ...
- Java10进制转16进制,16进制转10进制
1.Java10进制转16进制 /** 卡号位数:8 */public static byte CARD_NUM_BIT = 8;/*** isBlank * * @param value* @ret ...
- 用汇编实现2进制到16进制 2进制到10进制转换并按要求输出
用汇编实现2进制到16进制 2进制到10进制转换并按要求输出 起因 题目要求 题目样例 实现代码 验证结果 最后 起因 我因为上课摸鱼,所以当时没学习的时间现在都要补回来. 三天,大概花了15个小时写 ...
- python 10进制和16进制转换
hex() 函数将指定的数字转换为十六进制值. >>> a='\x00W\x17P' >>> print(a.encode('hex')) 00571750 > ...
- Python进制转换10进制转换为16进制,不使用hex函数
笔试中遇到的问题 Python进制转换10进制转换为16进制,不使用hex函数 给定一个整数,编写一个算法将这个数转换为十六进制数.对于负整数,我们通常使用 补码运算 方法. 注意: 十六进制中所有字 ...
- linux c int16进制转10进制,[编程题] 进制转换(16进制转10进制)
[编程题] 进制转换 3/3 [编程题] 进制转换 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M 写出一个程序,接受一个十六进制的数,输出该数值的十进制表示. ...
- 10进制转换为16进制数——算法
10进制转换为16进制数 题目描述 十六进制数是在程序设计时经常要使用到的一种整数的表示方式.它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至 ...
- C# 中10进制、16进制及其ASCII码之间转化
C#的进制转换主要用在串口通讯时候 进制转换是人们利用符号来计数的方法.进制转换由一组数码符号和两个基本因素"基数"与"位权"构成. 基数是指,进位计数制中所采 ...
- C++任意数字类型转 2进制、8进制、16进制
C++任意数字类型转 2进制.8进制.16进制 平时我们在写程序的过程中会经常碰见进制转换的操作,偶尔写一次还好每次写,我们都又要重新定义函数进行转换:在这里博主就分享一下我自己编写的一个进制转换的方 ...
最新文章
- html渐变色CSS3 渐变,如何实现css3渐变色,css3渐变色怎么写
- 机器人能否取代人工?阿迪达斯付出血的教训,含泪关闭智能工厂
- 数字孪生城市应用【案例集】,附下载
- 存储引擎-存储结构之一:行
- php上传多张图片为什么只显示一张,javascript,_js多张图片上传 也拿到多张图片的路径 在页面上展示只显示一张?只执行了一次???,javascript - phpStudy...
- Web程序员的Mysql进阶序三之sql多表数据删除、子查询、联合查询
- Mysql事项,视图,函数,触发器命令
- python函数参数学习_python函数学习1
- linux系统支持ntfs吗,linux支持NTFS
- 图片点击后出现模态框效果的实现
- SIFT算法论文:译文、详解
- python彩票预测算法软件_python用遗传算法 神经网络 模糊逻辑控制算法对彩票乐透数据进行预测...
- 逻辑思维训练——假设法
- ios点击推送闪退_iOS 13.4 Beta 4 发布,闪退问题修复
- 关于apple watch(苹果表)
- 筛选后系列填充_不会用Excel做数据筛选,老板叼的你没话说!
- 2023春季露营投影怎么选?轻薄投影极米Z6X Pro值得推荐
- windows下使用nexus3.x搭建maven私服
- 微信小程序实现电子签名并导出图片
- AMS1117的输入电压范围
热门文章
- 如何快速开发一个App手机应用
- 如何使用GitHub Desktop管理Gitlab库
- python判断火车票座位_火车票买不到?看我用python监控票源
- 【Lora智慧农业系统】让农民伯伯轻松坐等收割!
- 【Latex】编辑公式效率太低?来看一些MathType的重要技巧
- Docker 常用命令汇总
- 雷达原理---时频分析--3.小波变换-3.1基础知识
- Tencent login函数登录成功后无法成功回传数据(无法返回回调方法) Android qq授权登录
- 计算机培训方案范文,2015年软件培训方案模板
- 川崎机器人怎样操作返回原点_leetcode之机器人能否返回原点