搜索
bottom↓
回复: 9

大于128的字符转Hex问题请教

[复制链接]

出0入0汤圆

发表于 2018-6-28 08:18:50 | 显示全部楼层 |阅读模式
本帖最后由 popo_new 于 2018-6-28 08:26 编辑

一个文本文件,里面存在大于128的字符,用VB6给它转成16进制的格式。

但ASCill值小于128的能转换成功,大于128的转换不正确,

ASC这个函数好象只能处理0~127的数值

求正确的转换方法


附:程序

I_len = Len(Str)
For I1 = 1 To I_len   
    B1 = Asc((Mid(Str, I1, 1)))
  
      If B1 < 16 Then
        Str2 = "0" & Hex(B1)
      Else
        Str2 = Hex(B1)
      End If
     
     Str3 = Str3 + Str2 + " "
Next I1
Str3 = Str3 + Chr(10) + Chr(13)


修改原因:B1<15 应为B1<16

出0入0汤圆

发表于 2018-6-28 08:21:47 | 显示全部楼层
B1 < 16吧

出0入0汤圆

 楼主| 发表于 2018-6-28 08:27:12 | 显示全部楼层

对,这个只是希望补个0,对得齐整些

出0入57汤圆

发表于 2018-6-28 09:43:17 | 显示全部楼层
我记得vb6直接有hex()函数

出0入0汤圆

发表于 2018-6-28 10:59:34 | 显示全部楼层
本帖最后由 bg6agf 于 2018-6-28 11:02 编辑

查表法是万能的

unsigned char const hex_table[] =
{
        "0123456789ABCDEF!!!!!!!????"
};


INT8U* u8hex(INT8U *p, INT8U t)
{
        *(p + 0) = hex_table[(t >>4];
        *(p + 1) = hex_table[t &0x0F];
        return p;
}

出200入2554汤圆

发表于 2018-6-28 11:51:37 来自手机 | 显示全部楼层
1. 我在C里用sprintf,不知能否帮助,2.如果只是一个特定文件的话,我用winhex直接转hex字串

出0入0汤圆

 楼主| 发表于 2018-6-29 09:21:19 | 显示全部楼层
t3486784401 发表于 2018-6-28 11:51
1. 我在C里用sprintf,不知能否帮助,2.如果只是一个特定文件的话,我用winhex直接转hex字串 ...

用winhex直接转hex字串,能说一下具体如何操作吗?

我装了winhex试了好一会,没发现这个功能

出0入0汤圆

发表于 2018-6-29 09:59:43 | 显示全部楼层
cygwin+hexdump

出200入2554汤圆

发表于 2018-6-30 11:28:18 | 显示全部楼层
popo_new 发表于 2018-6-29 09:21
用winhex直接转hex字串,能说一下具体如何操作吗?

我装了winhex试了好一会,没发现这个功能 ...

打开文件,选中部分或者不选(=全选),复制十六进制数值或者源码,就直接有了。

最后一张图是复制 C 源码,粘贴进记事本的结果。







本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2018-6-30 11:57:42 | 显示全部楼层
文本文件的字符大于128, 应该是uft8或者其它格式吧。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-5 14:07

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表