A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 任利康 中级黑马   /  2015-7-25 01:27  /  400 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

向大家请教一个问题,byte  a =(byte)130
a打印出来是多少。具体原理???

2 个回复

倒序浏览
class TestByte
{
        public static void main(String[] args)
        {
                byte a = (byte)130;
               
                System.out.println(a);
        }
}
//打印结果:-126


/*
java中的 byte 占一字节8位
         int  占4字节32位
   且第一位都为符号为,0表示正数,1表示负数
   
130 = (00000000 00000000 00000000 10000010)b
转换成byte类型,就只有后八位(10000010)b,
首位为1,表示负数,求该负数的绝对值,
           10000010
        -------------------          
    取反: 01111101
        加1 :        1
        -------------------
               01111110b = 126
                  
所以为 -126.                  
*/

评分

参与人数 1黑马币 +1 收起 理由
任利康 + 1 赞一个!

查看全部评分

回复 使用道具 举报
Apol 发表于 2015-7-25 11:09
class TestByte
{
        public static void main(String[] args)

谢谢了!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马