byte类型变量相加和为byte类型 超出范围怎么表示

bytea=67;byteb=89;bytec=(byte)(a+b);System.out.println(c);输出值为-100;请问是怎么算得。... byte a=67;
byte b=89;
byte c=(byte)(a+b);
System.out.println(c);
输出值为-100;请问是怎么算得。
展开
 我来答
fcpahj
推荐于2016-07-25 · 超过14用户采纳过TA的回答
知道答主
回答量:34
采纳率:0%
帮助的人:42.5万
展开全部
long、int、short、byte都是带符号整数。
byte为8位,表示范围-128~+127最高位为符号位,负数用补码表示。
67+89=156, 10011100,即-100。
听不清啊
高粉答主

推荐于2018-04-23 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部
可以采用以下的办法:
byte a=200,b=252,c=215;
int x,y;
printf("%d\n",(int)a+b); //方法1,强制类型转换后,相加输出
x=a; //方法2,先赋值,自动类型转换
x+=b;
y=(int)a+c; //方法3,强制类型转换后,相加后再赋值
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-10-30
展开全部
因为BYTE是单字节的,占了8位,应该是用二进制来做的吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式