首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >二补码转换

二补码转换
EN

Stack Overflow用户
提问于 2010-09-28 12:10:37
回答 10查看 37.8K关注 0票数 15

我需要将两个补码格式的字节转换成正整数字节。范围-128到127映射到0到255。

代码语言:javascript
复制
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的范围。欲了解更多信息,请查看以下难以找到的文章:二补

EN

回答 10

Stack Overflow用户

发布于 2010-09-28 12:13:14

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

代码语言:javascript
复制
sbyte something = -128;

byte foo = (byte)( something + 128);
票数 8
EN

Stack Overflow用户

发布于 2010-09-28 12:13:35

代码语言:javascript
复制
new = old + 128;

宾果:-)

票数 7
EN

Stack Overflow用户

发布于 2010-10-12 20:20:20

试一试

代码语言:javascript
复制
sbyte signed = (sbyte)input;

代码语言:javascript
复制
int signed = input | 0xFFFFFF00;
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3812501

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档