将整数变量转换为字节变量

Mil*_*ita 3 java

您好我正在学习java编程,我刚在我的书中有任务说将int varible转换为byte变量

byte b;
int i=257;
Run Code Online (Sandbox Code Playgroud)

当我将int转换为b

b=(byte) i;
Run Code Online (Sandbox Code Playgroud)

输出是1?当字节变量的值从-128变为127时它怎么可能在我的书中他们说字节变量的有效范围是256?

Eng*_*uad 5

257 == 00000000000000000000000100000001 (as integer which holds 32 bits)
  1 ==                         00000001 (byte holds only 8 bits)
Run Code Online (Sandbox Code Playgroud)