【发布时间】:2019-08-03 15:08:21
【问题描述】:
我在给我的任务中遇到了这个问题。 情况如下:
如果用户点击“Vat First”,则值为 0。 否则,值为 1。
那么,在这个文本框中,
允许的取值范围是 0 到 15。
然后示例值是这样保存的:
"01" = 因为它首先是缸和 1mm Z 轴向上高度。
“11” = 平台优先,Z 轴向上 1mm
“015” = 先瓮,15mm
“115” = 平台优先,15mm
之所以这样保存,是因为是给我的文件协议,我也无能为力。它说该值为 1 字节值的“平台移动顺序和 Z 轴向上高度”。
我现在的问题是之后读取结果以将其重新加载到应用程序。我怎么知道它是否只使用 3 位或 2 位数字,因为 int 的返回忽略了开头的 0。 "015" = "15" 所以我的应用程序可能会将其视为平台优先,5 毫米,而不是增值税优先,15 毫米。
编辑:所以我刚刚意识到感谢@BenVoigt,它被保存到一个字节中并且它有 8 位。根据给我的协议,前 4 位是移动顺序(0 或 1),其余的是 Z 轴向上高度(0-15)。对于真正的问题,我如何将字节分成 4 位并获取值?
【问题讨论】:
-
为什么????你不能只做 JSON 或至少像 0,15 这样的逗号分隔列表吗?
-
噢。我忘了告诉你这是给我的文件协议。我对此无能为力@AlexeiLevenkov
-
但它是text文件协议?那么如何让“015”和“15”字符串相同呢?
-
@TerribleDog 你的意思是当他们从文本流中读取非整数值时,一些#$@# 制作了
PlatformVatMovingOrder类型为int? (旁注请重新阅读minimal reproducible example 指导 - 很难看出您的情况到底发生了什么) -
如果没有所有的业务逻辑,这个问题可能会受益匪浅,非常难以理解