You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB.NET中16位数据拆分8位后还原数值不符的技术问题

问题排查分析
  • 你的代码逻辑本身是正确的:原十六进制值&HA91对应十进制2705,拆分后高字节为0xA(十进制10)、低字节为0x91(十进制145),组合运算(0xA << 8) | 0x91会得到原数值0xA91(十进制2705),代码应输出The values match!。

  • 你提到还原后得到十进制2570(对应十六进制0xA0A),说明实际运行时拆分后的高低字节均为0xA(十进制10),可能的原因包括:

    1. 代码与提供的不一致:实际运行的代码中lowByte的赋值逻辑错误,比如误将lowByte写成和highByte相同的右移取高8位逻辑,导致高低字节重复取原数值的高8位。
    2. 数值转换/读取错误:你可能混淆了十六进制与十进制的转换,或是看错了控制台输出的十六进制值(比如把0xA91误看成0xA0A)。
    3. 原数值赋值错误:实际代码中originalValue的赋值可能是&HA0A(十进制2570)而非&HA91,导致还原后数值与原数值一致,但你误以为原数值是2705。
  • 快速验证方法:在代码中添加十进制数值的输出语句,确认各变量的实际值:

    Console.WriteLine("Original Value (Decimal): {0}", originalValue)
    Console.WriteLine("High Byte (Decimal): {0}", highByte)
    Console.WriteLine("Low Byte (Decimal): {0}", lowByte)
    Console.WriteLine("Combined Value (Decimal): {0}", combinedValue)
    

    运行后查看各变量的十进制数值,即可定位问题所在。

内容的提问来源于stack exchange,提问作者nyl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 12:35:56