二进制补码转换

2023-12-28

我需要将二进制补码格式的字节转换为正整数字节。 范围 -128 到 127 映射到 0 到 255。

Examples: -128 (10000000) -> 0 , 127 (01111111) -> 255, etc.

EDIT为了消除混淆,输入字节(当然)是 0 到 255 范围内的无符号整数。但它使用二进制补码格式表示 -128 到 127 范围内的有符号整数。例如,输入字节值128(二进制10000000)实际上代表-128。

额外编辑好吧,假设我们有以下字节流 0,255,254,1,127。在二进制补码格式中,这代表 0、-1、-2、1、127。我需要将其限制在 0 到 255 范围内。有关更多信息,请查看这篇很难找到的文章:二进制补码 http://en.wikipedia.org/wiki/Two%27s_complement


从您的示例输入中,您只需要:

sbyte something = -128;

byte foo = (byte)( something + 128);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

二进制补码转换 的相关文章

随机推荐