简单的小问题.自己搞不定了! BYTE类型的数只有一位.如果我把一个INT类型的数(128);强制转为BYTE型.结果应该是-128.而INT类型(128)对应的二进制数应该是10000000.不理解怎么来负数.请牛指点一下. 自学者,不要见笑! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 128的二进制是10000000,后面7个零,你多算了一个零,Java虚拟机在进行强制数据类型转换时,如int转byte,抛弃高八位. Java中的Int型是32位的,即4byte,舍弃高24位,去最后八位(1byte) 最高位是符号位int: 原码: 00000000000000000000000010000000 反码: 01111111111111111111111101111111 补码: 01111111111111111111111110000000转换为Byte时多取一位符号位:byte: 补码: 110000000 反码: 101111111 原码: 110000000最高位1表示负数,十进制就是-128了 最高位是符号位int:原码:00000000000000000000000010000000反码:01111111111111111111111101111111补码:01111111111111111111111110000000转换为Byte时多取一位符号位:byte:补码:110000000反码:101111111原码:110000000最高位1表示负数,十进制就是-128了这个搞不太明白?转换为Byte时多取一位符号位:???是这样子吗? validate()与pack()~~~ java读取大文本文件的问题 类的初始化顺序 serverSocket服务端问题,请高手解答 大虾帮我看看这是怎么回事儿啊 作业题,望达人不吝赐教... Java中Calendar日历的一点疑问 这是什么错误!! 连ms-sql的问题 与java高手过招 求救!急需!用JAVA编写一个扫描端口的程序。 jdk1.4中怎么得到打印机的分辨率
???是这样子吗?