找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 115|回复: 4

字节集如何替换

[复制链接]

2

主题

5

回帖

30

积分

新手上路

积分
30
QQ
发表于 6 天前 | 显示全部楼层 |阅读模式
悬赏1金钱未解决
字节集 如何替换掉 字节集中的0 替换为空字节

替换字节集 = 子字节集替换(临时字节集, {0}, {})
  我这样写 为啥替换不掉0

55

主题

228

回帖

1410

积分

金牌会员

积分
1410
发表于 6 天前 | 显示全部楼层


应该是不支持明值

本帖子中包含更多资源

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

×

78

主题

476

回帖

2149

积分

管理员

积分
2149
发表于 5 天前 | 显示全部楼层
字节集本身就提供了 替换和 交换 接口

2

主题

5

回帖

30

积分

新手上路

积分
30
QQ
 楼主| 发表于 前天 18:47 | 显示全部楼层
我自己 写了一个  移除的O字节

函数 字节集 移除零字节_批量版(字节集 原字节集)
        整型 长度 = 原字节集.取大小()
        字节集 结果 = 取空白字节集(长度)
        整型 非零计数 = 0
        整型 i = 0
        循环 (i < 长度)
                如果 (i + 3 < 长度)
                        字节型 b1 = 原字节集[i]
                        字节型 b2 = 原字节集[i + 1]
                        字节型 b3 = 原字节集[i + 2]
                        字节型 b4 = 原字节集[i + 3]
                        如果 (b1 != 0)
                                结果[非零计数++] = b1
                        如果 (b2 != 0)
                                结果[非零计数++] = b2
                        如果 (b3 != 0)
                                结果[非零计数++] = b3
                        如果 (b4 != 0)
                                结果[非零计数++] = b4
                        i += 4
                否则
                        变量循环 (整型 j = 0; j < 最小值(4, 长度 - i); j++)
                                字节型 b = 原字节集[i]
                                如果 (b != 0)
                                        结果[非零计数++] = b
                        跳出
                       
        返回 取字节集左边(结果, 非零计数)

55

主题

228

回帖

1410

积分

金牌会员

积分
1410
发表于 昨天 21:43 | 显示全部楼层
本帖最后由 呵呵仙 于 2025-11-7 21:44 编辑
hui3537287 发表于 2025-11-6 18:47
我自己 写了一个  移除的O字节

函数 字节集 移除零字节_批量版(字节集 原字节集)

我发现参数也是可以明值.
但是,明值必须要2个成员或以上,如{0,0}.
但是,不支持一个成员的,如{0}.否则会被认为成员1为一个4字节的整数,而不是字节型
解决办法就是,把成员1强转为字节型.书写如下:
字节集 替换字节集 = 子字节集替换(临时字节集, {(字节型)0}, {})
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|炫语言 | 炫彩界面库 | 用户所需, 正是我所做! ( 鄂ICP备2023014763号-1 )

GMT+8, 2025-11-8 18:21 , Processed in 0.082580 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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