java 类型与移位运算

来源:互联网 发布:aj淘宝官方旗舰店 编辑:程序博客网 时间:2024/05/30 23:03

1.boolean 1bit 只能取值true or false

   byte 1byte 

   char 2byte 专为unicode设计,包括全球几乎所有语言的字符,中文字符在64000左右

   short 2byte

   int  4byte   Integer.toBinaryString(toHexString)  Inteter.parseInt(String)

   long 8byte  Long 也类似  Long.parseLong(String)

   float 4byte

   double 8byte  

    

2.java 均为有符号整数,没有无符号整数表示


3.在计算机中,负数以其正值的补码形式表达

举一例,我们来看整数-1在计算机中如何表示。

假设这也是一个int类型,那么:

原码:一个整数,按照绝对值大小转换成的二进制数,称为原码。

反码:将二进制数按位取反,所得的新二进制数称为原二进制数的反码。

补码:反码加1称为补码。

也就是说,要得到一个数的补码,先得到反码,然后将反码加上1,所得数称为补码。

先取1的原码:00000000 00000000 00000000 00000001

得反码:     11111111 11111111 11111111 11111110

得补码:     11111111 11111111 11111111 11111111

注意:((long)13<<40)+(3<<30)计算的结果


4.java中有三种移位运算符

<<      :     左移运算符,num << 1,相当于num乘以2

>>      :     右移运算符,num >> 1,相当于num除以2

>>>    :     无符号右移,忽略符号位,空位都以0补齐

 在移位运算时,byte、short和char类型移位后的结果会变成int类型,对于byte、short、char和int进行移位时,规定实际移动的次数是移动次数和32的余数,也就是移位33次和移位1次得到的结果相同。移动long型的数值时,规定实际移动的次数是移动次数和64的余数,也就是移动66次和移动2次得到的结果相同。

0 0
原创粉丝点击