请高手帮忙转一下下面几行代码,主要是类型转换,搞不懂

twiker 2013-04-26 12:20:30
C语言版:


char c1[10];
for(int i=0; i<10; ++i)
if(i%2)
c[i]+=128;
else
c[i]-=128;


我改成java版之后遇上负数就不对了,我写的是这样的

byte[] b1=new byte[10]
for(int i=0; i<10; ++i)
if(i%2==1)
b1[i]+=128;
else
b1[i]-=128;

我改成short后要给byte数组赋值又编译不过
...全文
205 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
twiker 2013-05-08
  • 打赏
  • 举报
回复
哎,那天晚上我又检查了下,其实上面的代码没问题,是我在循环的时候后面有一节没算到,所以结果有错。代码是没问题的,这样也可以
  • 打赏
  • 举报
回复
1byte是8bit,故有2的8次方表示范围,故在-128到+127之间(0算在正数里了),故楼主不能用byte类型。希望对你有帮助。
zting125240 2013-04-26
  • 打赏
  • 举报
回复
范围不同 byte -128-127 用char型的吧
Acesidonu 2013-04-26
  • 打赏
  • 举报
回复
引用 2 楼 zhjiqiuanng 的回复:
byte的范围是-128到127
++
LCore 2013-04-26
  • 打赏
  • 举报
回复
引用 楼主 twiker 的回复:
本帖最后由 twiker 于 2013-04-26 00:24:01 编辑 C语言版: C/C++ code?123456char c1[10];for(int i=0; i<10; ++i) if(i%2) c[i]+=128; else c[i]-=128; 我改成java版之后遇上负……
byte[] b1=new byte[10] 后面木有分号“;”
可比克_zhjq 2013-04-26
  • 打赏
  • 举报
回复
byte的范围是-128到127
watt1010 2013-04-26
  • 打赏
  • 举报
回复
编程的时候最好不要用byte类型 ,byte类型最后也要转换为int 来执行
XZkaishi1989 2013-04-26
  • 打赏
  • 举报
回复
引用 4 楼 Acesidonu 的回复:
[quote=引用 2 楼 zhjiqiuanng 的回复:] byte的范围是-128到127
++[/quote]++2

62,635

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧