关于byte数组赋值的问题

guoxiaopeng1982 2008-01-28 11:37:45
本人有一个数组byte Qualifier[] = new byte[8];现在的要求是每一位bit都赋值为1,那么是不是我应该这样赋值
Qualifier[0] = -128;
Qualifier[1] = -128;
Qualifier[3] = -128;
Qualifier[4] = -128;
Qualifier[5] = -128;
Qualifier[6] = -128;
Qualifier[7] = -128;
Qualifier[8] = -128;如果不对,应该怎么赋值,谢谢…………本人在线等大家的回家,感谢了……
...全文
3228 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
运算规则:

某一byte负数:11111111,将最低位减1,变为11111110,再将每一位翻转00000001,值为1,则11111111值为-1。
  • 打赏
  • 举报
回复
每一位置为1的话,值是:-1,而不是-128。

将0的每一位翻转就可以了。

for(int i = 0; i < Qualifier.length; i++) {
Qualifier[i] = ~0;
}
guoxiaopeng1982 2008-01-28
  • 打赏
  • 举报
回复
这个我知道,只是刚刚写错了……我只是想为下是不是赋值为-128,没一个bit就是1了
老紫竹 2008-01-28
  • 打赏
  • 举报
回复
第二点 byte[8], 只有8个位置,是从0-7, 所以
Qualifier[8] = -128; // 这里的8是错误的,最多到7
老紫竹 2008-01-28
  • 打赏
  • 举报
回复
byte Qualifier[] = new byte[] {-128,-128,-128,-128,-128,-128,-128,-128};
guoxiaopeng1982 2008-01-28
  • 打赏
  • 举报
回复
火龙果,厉害……果然是-1哦……我用16进制赋值0xff最后显示的是-1

62,614

社区成员

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

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