java中的进制问题以及位运算

java中的位运算
java中可以直接进行位运算,但你进行位运算时,java编译器会自动将你的基本数据类型转化为二进制数
二进制:有0和1,二进一。
十进制:有0到9,十进一。
八进制:有0到7,八进一。
十六进制:有0到9,和ABCDEF,十六进一。
所有的进制数都是根据数的位置不同所标识的值不同。
两个二进制数进行相加,但数不对等是,缺少的部分自动补零。
二进制数的最高位代表的是正负号,0代表是正数,1代表是负数。
位运算有:
按位与运算:&
特点是:两个二进制数相同位置进行运算,如果都是1则是1,有一个是0则是0;

按位或运算:|
特点是:两个二进制数相同位置进行运算,如果有一个是1则是1,全部是是0则是0;

异或运算:^
特点是:相同位值,如果值相同则为0,不同则为1.

反码运算:~
特点是:1变0,0变1.

左移运算:<<
特点:左边的数舍弃,右边空出来的位用0补齐。
左移一位时,如果左边舍弃的数没有1时,得到的新值是原来的值得二倍。

右移运算符:>>
特点:左边的数舍弃,右边的数如果是正数就用0补齐,如果是负数就用1补齐。
当右移一位时,如果左边舍弃的数没有1是,则得到的新值相当于原来的数的二分之一。

无符号右移运算:>>>
特点是:右边的数舍弃,空出来的左边位置用0补齐。

非常重要的:原码,反码,补码
原码:一个整数的绝对值对应的二进制数为原码
反码:对原码进行反码运算,0变1,1变0.
补码:就是对反码加1,二进制是二进一的原则(需注意)
一个正整数的补码就是其对应负整数的二进制数(注意不是原码,是它的二进制数)。
已知一个负整数对应的二进制数,就可以用这个二进制数减一,再反码操作,就可以得到其正整数对应的原码。























你可能感兴趣的:(java中的进制问题以及位运算)