关于进制
所有数字在计算机底层都以二进制形式存在。
对于整数,有四种表示方式:Ø
二进制(binary):0,1,满2进1.以0b或0B开头。Ø
十进制(decimal):0-9,满10进1。Ø
八进制(octal):0-7,满8进1.以数字0开头表示。
十六进制(hex):0-9及A-F,满16进1.以0x或0X开头表示。此处的A-F不区分大小写。如:0x21AF +1= 0X21B0
Java整数常量默认是int类型,当用二进制定义整数时,其第32位是符号位;当是long类型时,二进制默认占64位,第64位是符号位l
二进制的整数有如下三种形式:Ø
原码:直接将一个数值换成二进制数。最高位是符号位Ø
负数的反码:是对原码按位取反,只是最高位(符号位)确定为1。Ø
负数的补码:其反码加1
计算机以二进制补码的形式保存所有的整数。Ø
正数的原码、反码、补码都相同Ø
负数的补码是其反码+1
计算机底层都以补码的方式来存储数据!!
十进制转2进制:除2取余的逆序。
二进制转成十进制乘以2的幂数。
只有有符号的整数才有原码、反码和补码的!
计算机储存有符号的整数时,是用该整数的补码进行储存的,0的原码、补码都是0,正数的原码、补码可以特殊理解为相同,负数的补码是它的反码加1。
-14原码 反码 补码
-12原码 反码 补码
11,-11
假如给出一串二进制数字,应该怎么计算十进制,这里要记住,给的肯定是补码,因为存储的就是补码,所以需要依次往前推反码,原码,再计算出来十进制。
-69
二进制转八进制,十六进制
八进制,十六进制转二进制
逻辑运算符
注意
- %取余运算:结果的符号与被取模数的符号相同。
位运算符
位运算是直接对整数的二进制进行的运算
案例:
案例: