【问题标题】:Showing a +255 byte in a byte[]在 byte[] 中显示 +255 字节
【发布时间】:2013-02-21 20:54:17
【问题描述】:

我真的希望有人可以帮助我。

我有一个byte[],它必须显示byte[] 中要遵循的字节数。现在我的值在 255 以上。有没有办法显示/输入一个大数字?

【问题讨论】:

  • “一个字节[]”到底是什么意思?你的意思是你有一个长度为 1 的字节数组?你的问题很不清楚。代码会有所帮助...
  • 听起来您几乎希望在一个字节中存储大于 255 的值...这听起来不是一个好主意
  • 您不能在一个字节中存储大于 255 的值,因此无法显示高于该值的字节值。
  • 您的意思是使用数组中的第一个条目来存储该数组中的条目总数吗?
  • 我得到一个 300 字节数组。这是发送到服务器的消息。现在我的一个字节必须显示 byte[] 的长度,以便服务器知道何时停止读取。现在该字节的值必须为 299。

标签: c# bytearray byte


【解决方案1】:

一个字节包含一个从 0 到 255 的值。要表示 299,您要么必须使用 2 个字节,要么使用一种方案(接收方也必须使用该方案),其中字节中的值被解释为更多大于其标称值,以扩大可能的取值范围。例如,该值可以是长度 / 2。这将允许 0 - 510 的长度,但只允许偶数长度(奇数长度的数组需要一个填充字节)。

【讨论】:

  • 我指责笨拙的手指和糟糕的触控板。对不起!已更正
【解决方案2】:

您可以使用两个(或更多)字节来表示大于 255 的数字。这是您想要的吗?

short value = 2451;
byte[] data = BitConverter.GetBytes(value);

如果需要这样做以便与某些外部系统交换数据,请记得阅读Endianness。

【讨论】:

  • 德里斯!这使我的头脑朝着正确的方向工作!这在我的情况下非常有效。我忽略了我有两个字节来显示值!谢谢
【解决方案3】:

这取决于您认为什么是好的方法。您可以执行某种形式的编码以允许存储大于 2 个字节的数据。 IE。也许将第一个字节设置为 0xFF 意味着您会将下一个字节视为其数据的一部分。 [0x01,0x0A,0xFF,0x0A] 会被解释为[1,10,265]的3个值

【讨论】:

    猜你喜欢
    • 2014-05-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-03
    • 2011-07-05
    • 1970-01-01
    • 2014-10-25
    • 2017-12-26
    • 1970-01-01
    相关资源
    最近更新 更多