Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-Can';编辑字节数组内容?_Java_Arrays_Casting_Byte - Fatal编程技术网

Java-Can';编辑字节数组内容?

Java-Can';编辑字节数组内容?,java,arrays,casting,byte,Java,Arrays,Casting,Byte,发生了什么?引用Java语言规范,章节: 整数类型的值是以下范围内的整数:对于字节,从-128到127,包括-128到127 因此,-69+256=187=0x000000BB强制转换为字节的值是0xBB=-69字节只有8位,所以只能保存2^8=256个值。它是用java签名的,因此值的范围为[-128127],包括在内。Abyte可以容纳256个不同的网络值。如果添加256,则字节溢出,结果保持不变。 在java中,范围是[-128127]。一个字节的范围在-128到127(-2^7到2^7-

发生了什么?

引用Java语言规范,章节:

整数类型的值是以下范围内的整数:对于
字节
,从-128到127,包括-128到127


因此,
-69+256=187=0x000000BB
强制转换为字节的值是
0xBB=-69
字节只有8位,所以只能保存2^8=256个值。它是用java签名的,因此值的范围为[-128127],包括在内。

A
byte
可以容纳256个不同的网络值。如果添加256,则字节溢出,结果保持不变。
在java中,范围是[-128127]。

一个字节的范围在-128到127(-2^7到2^7-1)之间,加上256,就像做360度旋转一样。将代码和中的256更改为128将显示不同的结果

一个字节可以容纳不同的值
256,因此当您添加256时,您将进行8次
Rol(向左旋转)
,返回与前面相同的值

如果您希望在
69
中转换
-69
,为什么不制作
stuffA[x]*=-1

如果确实要反转位,可以使用
补码运算符
~
),
stuffA[x]=(字节)~stuffA[x]
,但由于
two的补码形式
,要获得与previos相同的数字,您需要
添加1


比如
stuffA[x]=(字节)(~stuffA[x])+1)

字节为8位,整数为32位

基本上看比特:

字节b=-37相当于219(int),其二进制为:

Somethin be up yo! 
This number be negative! -69
I added 256 and now stuff is positive yo! -69
Somethin be up yo! 
This number be negative! -96
I added 256 and now stuff is positive yo! -96
Somethin be up yo! 
This number be negative! -13
I added 256 and now stuff is positive yo! -13
Somethin be up yo! 
This number be negative! -37
I added 256 and now stuff is positive yo! -37
int 256:

0000 0000 0000 1101 1011
两者相加将得到475的int值:

0000 0000 0001 0000 0000
现在将其转换为字节,即取LSB 8位:

0000 0000 0001 1101 1011
也就是-37


希望这能解释

您认为一个字节中可以存储的值的范围是多少?
0000 0000 0001 1101 1011
1101 1011