我需要将两个补码格式的字节转换成正整数字节。范围-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的范围。欲了解更多信息,请查看以下难以找到的文章:二补
发布于 2010-09-28 12:13:14
从您的示例输入中,您只需要:
sbyte something = -128;
byte foo = (byte)( something + 128);发布于 2010-09-28 12:13:35
new = old + 128;宾果:-)
发布于 2010-10-12 20:20:20
试一试
sbyte signed = (sbyte)input;或
int signed = input | 0xFFFFFF00;https://stackoverflow.com/questions/3812501
复制相似问题