网上传送二进制数据的几种方法

本文探讨了两种在网络上传输二进制数据的方法:16进制编码和Base64编码。16进制编码将每个字节拆分为两个字节,通过编码保证发送可见字符,而Base64编码将3个字节转化为4个字节,常用于在Web前端展示图像或电子邮件附件的编码。
摘要由CSDN通过智能技术生成
      网上传送二进制数据的几种方法
 
   一直以来,有些无线(特别是无线Modem)或者有线网络设备无法正确发送和接收某些不可打印(不可见)二进制字符, 所以需要对二进制数据做一定的编码变换, 使之成为纯文本可见字符,常见的有两种方法,一种是采用16进制编码,另外一种是采用Base64编码。

1、16进制编码
这种编码是把1个字节拆成2个字节后发送出去,在接收端再两两还原成1字节。这种编码会使长度增加一倍,编码可逆,编、解码简单速度快。
1.1 1字节拆分成2字节
假设要拆分的字节定义如下:byte Orig.
首先取得高4位的值:nHighValue=Orig << 4, 然后判断nHighValue是否在0-9之间, 若是,则nHighVa lue +=48; 否则nHighValue +=55,此时nHighValue的值将为’0’-'9’或者‘A’-'F’之一。
然后取得低4位的值, 以nLowValue表示,并按上述方法将之变成介于“0” 到“ 9” 或“A” 到“F” 之间的一个字符.
最后将上面两步所得到的字符拼接起来就形成了一个2字节可见纯文本字符串, 这就保证了只发送可见字符.
1.2 2字节还原成1字节
设要还原的字符串前2个字节定义如下: char strRecover[2]:
首先取得第一个字节的值, 以bytValue 表示, 即bytValue:=strRecover[0] , 执行bytValue &= 0x0F 取得低4位的值,左移4位:bytValue << = 4.
然后取得第二个字节的值, 以bytLowValue表示, 即bytLowValue =strRecover[1] , 执行bytLowValue &&

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值