精易论坛

标题: 数字串任意位置取数字求教 [打印本页]

作者: sunfly    时间: 2025-3-17 00:14
标题: 数字串任意位置取数字求教

随便举例 A=324509208这串数字,取9502出来判断最大数
请教问题:
1、转到字节集可以像数组一样直接调用A[i]进行比较大小得到最大数,但是返回输出时又需要转换到文本即到文本(A[i]-48),
     步骤上过多降低处理速度了。此法个人感觉还是比取文本中间更快或许写法差异导致此感觉
2、用取变量数据地址可以得到数据首地址,有没有方法可以逐个取出数字? 比如单独取出某个位置9或5或0或2。既然可以查到地址肯定有办法取单个的吧?
3、需要10万+重复取值比较,大量取文本中间感觉速度慢,用快速对象长度太小测试过置文本进去会浪费大量时间。

求1 2处理办法,主要是2能否单独取数出来方法。谢谢!




作者: 帅气与大侠    时间: 2025-3-17 00:14
给你弄个汇编版的,效率应该不是问题了
  
子程序名返回值类型公开备 注
取字符Ex字节型 返回值会减48。一千万次30毫秒左右
参数名类 型参考可空数组备 注
数字文本文本型只能为纯数字字符串,如:"324509208",参数不能为空文本,否则崩溃
索引整数型为了方便,索引从1开始,方便和字节集[n]写法一致
置入代码 ({ 139, 69, 8, 139, 77, 12, 139, 0, 139, 68, 8, 255, 44, 48, 201, 194, 8, 0 })
返回 (0)
子程序名返回值类型公开备 注
取字符字节型 返回值不会减48
参数名类 型参考可空数组备 注
数字文本文本型只能为纯数字字符串,如:"324509208",参数不能为空文本,否则崩溃
索引整数型为了方便,索引从1开始,方便和字节集[n]写法一致
置入代码 ({ 139, 69, 8, 139, 77, 12, 139, 0, 139, 68, 8, 255, 201, 194, 8, 0 })
返回 (0)


作者: 算法艺术家    时间: 2025-3-17 00:39
寻找文本 挺快的

补充内容 (2025-3-17 00:46):
取代码 (, ) 这个快
作者: 笨来无一悟    时间: 2025-3-17 02:05
问题问的太含糊了 你的9502是怎么取出来的 不说清楚完整的流程 你认为可以设计出高效的算法?
作者: 初一47    时间: 2025-3-17 06:38
谢谢楼主,拼命学习中
作者: sunfly    时间: 2025-3-17 12:31
笨来无一悟 发表于 2025-3-17 02:05
问题问的太含糊了 你的9502是怎么取出来的 不说清楚完整的流程 你认为可以设计出高效的算法? ...

谢谢提醒,我是举例说明从一串数字串里面取出这个9502,取9502这个步骤不需要考虑,只是想表达问题存在的环境(因为可能含有中文字符,举例所以全用数字描述),只需要针对9502取单个数字。
或者理解为用取变量数据地址得到9502的数据地址如何取单个数字或连续取50 502这样不等长度的数字
作者: sunfly    时间: 2025-3-19 00:06
sunfly 发表于 2025-3-17 12:31
谢谢提醒,我是举例说明从一串数字串里面取出这个9502,取9502这个步骤不需要考虑,只是想表达问题存在的 ...

这和态度有啥关系?12点睡觉前敲的问题就是想请教从数字串里面如何单独取单个数字,至于数字串从哪里来怎么取不都描述了个场景不需要考虑嘛。想想的确自个没描述清楚。直接问9502里面如何用取变量数据地址能否取到单个数字就好了。





欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4