【发布时间】:2011-04-18 06:29:23
【问题描述】:
我需要将二进制补码格式的字节转换为正整数字节。 范围 -128 到 127 映射到 0 到 255。
Examples: -128 (10000000) -> 0 , 127 (01111111) -> 255, etc.
编辑为了消除混淆,输入字节(当然)是 0 到 255 范围内的无符号整数。但它使用二进制表示 -128 到 127 范围内的有符号整数补码格式。比如输入的字节值128(二进制10000000)实际上代表-128。
额外编辑好吧,假设我们有以下字节流 0,255,254,1,127。在二进制补码格式中,这表示 0、-1、-2、1、127。我需要将其限制在 0 到 255 的范围内。有关更多信息,请查看这篇很难找到的文章:Two's complement
【问题讨论】:
-
byte没有签名,你想做什么? -
我仍然不完全确定这里尝试了什么。要么它是所有答案给你的方式,要么你错误地理解了 2 的补码表示。
标签: c# twos-complement