. . . . 废话不多说,上代码
. . . . 字符串转16进制的 bin2hex

    char *temp_p = "IM THE TEXT";int len = strlen(temp_p);char temp_array[1024] = {0};int count;int flag;for (count = 0; count < 2 * len; count++){/* 控制进位的,* 例如bin[0]=0xAB,对应hex[0]和hex[1]* count=0,0%2=0,进位flag=16,所以bin[0]/16=0x0A,高位A被右移4位到低位,然后switch-case赋值给hex[0]="A"* count=1,1%2=1,进位flag=1,所以bin[0]/1=0xAB,低位B被保留,与0x0F与操作后得0x0B,然后switch-case赋值给hex[1]="B"* 最后得到字符串“AB”* 如此类推*/flag = count % 2 ? 1 : 16;switch ((*(unsigned char *)(temp_p + count / 2) / flag) & 0x0F){case 0x00:temp_array[count] = '0';break;case 0x01:temp_array[count] = '1';break;case 0x02:temp_array[count] = '2';break;case 0x03:temp_array[count] = '3';break;case 0x04:temp_array[count] = '4';break;case 0x05:temp_array[count] = '5';break;case 0x06:temp_array[count] = '6';break;case 0x07:temp_array[count] = '7';break;case 0x08:temp_array[count] = '8';break;case 0x09:temp_array[count] = '9';break;case 0x0A:temp_array[count] = 'A';break;case 0x0B:temp_array[count] = 'B';break;case 0x0C:temp_array[count] = 'C';break;case 0x0D:temp_array[count] = 'D';break;case 0x0E:temp_array[count] = 'E';break;case 0x0F:temp_array[count] = 'F';break;default:printf("WWWWRONG\n");return -1;break;}}// gcry_sexp_sprint(a, GCRYSEXP_FMT_ADVANCED, test, 1024);// printf("This is A len %d:\n%s.\n\n\n", strlen(test), test);printf("The HEX len is %d, Text is %s.\n\n\n", 2 * len, temp_array);

. . . . 然后是16进制转字符串的 hex2bin

    char *data = "0123456789ABCDEF"int len = strlen(data);unsigned char digest[512] = {0};int count;for (count = 0; count < len; count++){/* 下面的*16的逻辑是* 例如:hex[0]='A'和hex[1]=‘B’对应bin[0]* count = 0, bin[0] = 0x00,bin[0]*16=0x00, +0x0A = 0x0A* count = 1, bin[0] = 0x0A,bin[0]*16=0xA0, +0x0B = 0xAB* 完成转换,以此类推*/switch (*(char *)(data + count)){case '0':digest[count / 2] = digest[count / 2] * 16 + 0x0;break;case '1':digest[count / 2] = digest[count / 2] * 16 + 0x1;break;case '2':digest[count / 2] = digest[count / 2] * 16 + 0x2;break;case '3':digest[count / 2] = digest[count / 2] * 16 + 0x3;break;case '4':digest[count / 2] = digest[count / 2] * 16 + 0x4;break;case '5':digest[count / 2] = digest[count / 2] * 16 + 0x5;break;case '6':digest[count / 2] = digest[count / 2] * 16 + 0x6;break;case '7':digest[count / 2] = digest[count / 2] * 16 + 0x7;break;case '8':digest[count / 2] = digest[count / 2] * 16 + 0x8;break;case '9':digest[count / 2] = digest[count / 2] * 16 + 0x9;break;case 'A':digest[count / 2] = digest[count / 2] * 16 + 0xA;break;case 'B':digest[count / 2] = digest[count / 2] * 16 + 0xB;break;case 'C':digest[count / 2] = digest[count / 2] * 16 + 0xC;break;case 'D':digest[count / 2] = digest[count / 2] * 16 + 0xD;break;case 'E':digest[count / 2] = digest[count / 2] * 16 + 0xE;break;case 'F':digest[count / 2] = digest[count / 2] * 16 + 0xF;break;default:printf("Wrong data fromat.");return -1;break;}}

字符串转16进制算法 16进制转字符串算法实现 bin2hex hex2bin C源码相关推荐

  1. 【Matlab DVRP】蚁群算法求解带距离的车辆路径规划问题【含源码 1040期】

    一.代码运行视频(哔哩哔哩) [Matlab DVRP]蚁群算法求解带距离的车辆路径规划问题[含源码 1040期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1 ...

  2. 【Matlab多目标优化求解】粒子群算法求解智能微电网多目标优化问题【含源码 383期】

    一.代码运行视频(哔哩哔哩) [Matlab多目标优化求解]粒子群算法求解智能微电网多目标优化问题[含源码 383期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 ...

  3. 【Matlab路径规划】A_star算法智能仓储机器人移动避碰路径规划【含源码 1180期】

    一.代码运行视频(哔哩哔哩) [Matlab路径规划]A_star算法智能仓储机器人移动避碰路径规划[含源码 1180期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文 ...

  4. java毕业设计——基于java+MMAS的蚁群算法路由选择可视化动态模拟设计与实现(毕业论文+程序源码)——蚁群算法路由选择可视化动态模拟

    基于java+MMAS的蚁群算法路由选择可视化动态模拟设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+MMAS的蚁群算法路由选择可视化动态模拟设计与实现,文章末尾附有本毕业设计的 ...

  5. 【数字信号去噪】基于matlab粒子群算法优化VMD分解分量选择数字信号降噪【含Matlab源码 1979期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[数字信号去噪]基于matlab粒子群算法优化VMD分解分量选择数字信号降噪[含Matlab源码 1979期] 点击上面蓝色字体,直接付费 ...

  6. java crm 进销存 websocket即时聊天发图片文字 好友群组 SSM源码

    博文来源:http://www.fhadmin.org/webnewsdetail4.html 系统介绍: 1.系统采用主流的 SSM 框架 jsp JSTL bootstrap html5 (PC浏 ...

  7. 【配送路径规划】基于matlab蚁群优化节约算法单中心多城市配送车辆路径规划【含Matlab源码 017期】

    一.VRP简介 1 VRP基本原理 车辆路径规划问题(Vehicle Routing Problem,VRP)是运筹学里重要的研究问题之一.VRP关注有一个供货商与K个销售点的路径规划的情况,可以简述 ...

  8. c语言循环写回合制小游戏_【资源】60个C语言项目源码免费领取!

    序言 今天的资源特意是为大三.大四的童鞋准备的, 整理了一波有关于C语言开发的游戏.系统.效果.小项目的源码!!源码!!源码!! 小编之前发过一波毕业项目的资源, 还没有获取的伙伴,直接申请进群就能获 ...

  9. 【非洲秃鹫优化算法】基于非洲秃鹫优化算法求解单目标优化问题(AVOA)含Matlab源码

    1 简介 元启发式算法在解决优化问题中起着至关重要的作用.大多数此类算法的灵感来自集体智慧和自然界生物的觅食.在本文中,受非洲秃鹰生活方式的启发,提出了一种新的元启发式算法.该算法被命名为非洲秃鹰优化 ...

最新文章

  1. 项目展示文案生成设计
  2. 根据空间线上的两点生成圆柱体 算法
  3. fireworks做图的最高长度
  4. pimg src=http://img.blog.csdn.net/20150823142545135?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQ...
  5. 安装mysql准备执行页面_mysql 安装
  6. Android 闹钟
  7. java 类 加载 初始化_java中类的初始化和加载
  8. android 类型.this,Android中this的用法
  9. CentOS 7.4系统安装配置图解教程
  10. 前++和后++引发的血案
  11. 粒子群优化算法python实现
  12. homebre mysql 启动_Mysql闪退问题图文解决办法
  13. CSS3与CSS的区别有哪些?
  14. Consider defining a bean of type ‘com.xingchen.media.service.MediaFileService‘ in your configuration
  15. 中联通宣布3G业务10月1日正式商用 套餐共分九档
  16. 创建文件夹 java_java文件操作 之 创建文件夹路径和新文件
  17. 赶紧收藏:如何使用Telegram客户支持
  18. SSD和HDD的磁盘读写
  19. 偏前端 + rsa加解密 + jsencrypt.min.js--(新增超长字符分段加解密)
  20. C#必看:《第17章节QQ管理系统》

热门文章

  1. Python爬虫入门教程 63-100 Python字体反爬之一,没办法,这个必须写,反爬第3篇
  2. C,DennisRitchie的不朽遗产
  3. CDR X8(CorelDRAW)安装下载不了,由于您已安装了另一版本图文详解教程
  4. intel和amd对java_如何在AMD芯片上使用intel编译器优化C程序
  5. 命令行查看BIOS信息与版本
  6. mobi、azw3格式文件怎么导入到安卓版的kindle里
  7. IDRISI Andes V15.0 (交互式GIS和影像处理)\
  8. macbook下载bing每日壁纸
  9. java实现不再单身,微信主动发送早安给女友
  10. OpenStack Liberty 版本 All-In-One 一键安装ISO 及安装指导