当前位置: 首页 > news >正文

动态网站的设计与实现/短信广告投放

动态网站的设计与实现,短信广告投放,岳西县建设局网站,模板网站 怎么做优化编解码:十六进制编解码 信息有多种表现形式:二进制、十进制、十六进制、字符串… 在计算机中,信息是以二进制的形式来表现。 可以人为定义:0就是假,1就是真,等等。 所谓编解码,是将一种数据…

编解码:十六进制编解码

信息有多种表现形式:二进制、十进制、十六进制、字符串…

在计算机中,信息是以二进制的形式来表现。

可以人为定义:0就是假,1就是真,等等。

所谓编解码,是将一种数据以另一种形式来表现,若正向变换称为编码,则其逆向过程则为解码。

计算机中,数据的本质是一串二进制0和1的字符串。

例如,二进制字符串0a代表十进制字符串10,十进制字符串255以二进制的形式表现则为0xff。

我们定义:

由二进制编码为十六进制的过程,称为十六进制码;
由十六进制编码为二进制的过程,称为十六进制码;

规则如下:

二进制数据:0x0a,在计算机中通常占1字节存储空间,即8bit,我们将前4bit取出,以十六进制表示,为字符串第一个字符:’0’;我们将后4bit取出,以十六进制表示,为字符串第二个字符:’a’,即,0000–>‘0’,1010–>’a’,最终结果为字符串”0a”。

若存在多个字节数据,则从左到右,依次编码。

例如:

0xab 0xcd 0xef 编码为十六进制:”abcdef”。

可见,编解码的本质是将数据以另一种不同形式表示的过程,数据信息本身并不发生改变。

如何将上面的解释“以程序代码的形式”进行“编码”?(^_^)


以上的文字包含了我此篇文章的信息,是以中英文形式表示,下面的代码,是将此篇文章的信息,以C程序的形式表示,这也是一种编解码

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>/*--------------------------------------------------------------* 函数名称:bin2hex* 功能描述:对Binary数据以十六进制形式进行编码* 参数说明:bin:待编码数据;blen:待编码数据长度* 返 回 值:* 备    注:一字节数据0xab编码为字符串"ab"* */
void bin2hex(const unsigned char *bin, size_t blen)
{static char bin2char[] = "0123456789abcdef";char *hex = malloc(blen*2+1); // The Last '1' For C 'NULL'memset(hex, 0, blen*2+1);for (size_t i = 0; i < blen; i++){hex[i*2] = bin2char[bin[i]>>4];hex[i*2+1] = bin2char[bin[i]&0x0f];}printf("%s\n", hex);free(hex);
}/*--------------------------------------------------------------* 函数名称:hex2num* 功能描述:十六进制字符转换为十进制数字* 参数说明:ch:待转换十六进制字符* 返 回 值:转换后的十进制数字* 备    注:忽略错误* */
unsigned int hex2num(char ch)
{if (ch >= '0' && ch <= '9')return ch - '0';else if (ch >= 'a' && ch <= 'z')return ch - 'a';else if (ch >= 'A' && ch <= 'Z')return ch - 'A';elsereturn 0; // error
}/*--------------------------------------------------------------* 函数名称:hex2bin* 功能描述:十六进制形式解码为Binary数据* 参数说明:hex:待解码十六进制数据* 返 回 值:Binary数据* 备    注:可由Hex数据推导出Bin数据长度(Hex-Len = 2 * Bin-Len)* */
unsigned char *hex2bin(const char *hex)
{size_t blen = strlen(hex) / 2;unsigned char *bin = malloc(blen);for (size_t i = 0; i < blen; i++)bin[i] = hex2num(hex[i*2])*16 + hex2num(hex[i*2+1]);return bin;
}int main()
{const char *hex = "0123456789abcdef";unsigned char *bin = hex2bin(hex);bin2hex(bin, 8);free(bin);return 0;
}

编译 && 执行:

[jiang@localhost jiang]$ gcc -o HexWithBin HexWithBin.c -std=c99
[jiang@localhost jiang]$ ./HexWithBin 
0123456789012345

请注意:

编解码的结果仅仅是数据表现形式不同,但结果所蕴含的信息数据是完全相同的。
编解码不等于加解密,更不等于摘要,他们三者是完全独立的概念,之间相互无任何关联性。
http://www.lbrq.cn/news/1280341.html

相关文章:

  • 创建一个网站多少钱/百度投诉中心24小时电话
  • 做淘宝美工的网站/樱花12e56
  • 网站开发完整的解决方案/注册网站免费注册
  • 网站开发工资淄博/品牌传播推广方案
  • wordpress the7/seo外包方法
  • 怎么用vps做网站/如何提高百度搜索排名
  • 网站建设规划ppt/西安seo服务公司
  • 义乌外贸网站制作/seoul是韩国哪个城市
  • 织梦模板可以在wordpress用/windows优化大师有必要安装吗
  • 烟台做网站公司/成人职业技能培训有哪些项目
  • 梭子手做鱼网站/武汉网络推广有限公司
  • 天天自学网网址/苏州seo报价
  • 宁波市镇海建设交通局网站首页/网站制作的服务怎么样
  • 顺昌网站建设/数据分析报告
  • 网站首页新闻模板/深圳seo推广外包
  • 饲料网站源码/深圳今天重大事件新闻
  • 做网站开发app/济南网站seo
  • 2003系统做网站/百度怎么注册自己的网站
  • 北航做网站公司/进入百度首页官网
  • 赤峰网站开发公司/seo的优点
  • 网站建设公司的公司哪家好/财经新闻最新消息
  • 分析网站的关键词/今日新闻
  • 网站建设公司怎么做的/泉州百度关键词优化
  • 最专业的外贸网站建设/新站快速收录
  • 云服务器建网站/阿里云域名查询
  • 代做道路毕业设计网站/关键词seo培训
  • 做电子请帖网站有哪些/seo百度首页排名业务
  • 好推建站/pc网站优化排名
  • 做网站总结体会/优化方案英语
  • wordpress首页文件/seo人员招聘
  • 推荐系统学习
  • 2025年7月26日训练日志
  • Go的管道——channel
  • CT、IT、ICT 和 DICT区别
  • HighlightingSystem
  • PYTHON从入门到实践-16数据视图化展示