黑马程序员技术交流社区

标题: 关于进制运算 [打印本页]

作者: 疯狂程序    时间: 2013-3-24 20:26
标题: 关于进制运算
本帖最后由 疯狂程序 于 2013-3-24 21:43 编辑

class demo2 {
        public static void main(String[] args) {
                byte i = 127;
               
               
                System.out.println((byte)(i+1));
        }
}
运算结果是-128
请问正常2个数运算,是如何在二进制中表示的?
作者: 葛伟    时间: 2013-3-24 20:35
127---->01111111
1----->+00000001
---------------------------
           10000000
这种运算方式
作者: 江大海    时间: 2013-3-24 21:05
byte 是占两个字节,就是用八个二进制表示,十进制会先转换成二进制再运算的吧,好吧,我也同意楼上的,
作者: 疯狂程序    时间: 2013-3-24 21:10
葛伟 发表于 2013-3-24 20:35
127---->01111111
1----->+00000001
---------------------------

我的意识是任意的两个数比如 -4+2,他是等于-2,但是计算机里是转换为2进制进行计算的,他是怎样算的,
作者: 葛伟    时间: 2013-3-24 21:19
疯狂程序 发表于 2013-3-24 21:10
我的意识是任意的两个数比如 -4+2,他是等于-2,但是计算机里是转换为2进制进行计算的,他是怎样算的, ...

先把-4求绝对值之后的二进制码,再加1,在与2的二进制进行计算,明白了吗?
作者: 葛伟    时间: 2013-3-24 21:22
-4------------------>1111111111111111111111111111111111111111111111111111111111111100
2 ------------------>0000000000000000000000000000000000000000000000000000000000000010
--------------------------------------------------------------------------------------------------------------------------------------------
-2------------------>1111111111111111111111111111111111111111111111111111111111111110




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2