所有数字在计算机底层都以二进制形式存在。
对于整数,有四种表示方式:
二进制(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位是符号位
二进制的整数有如下三种形式:
原码:直接将一个数值换成二进制数。最高位是符号位
负数的反码:是对原码按位取反,只是最高位(符号位)确定为1。
负数的补码:其反码加1。计算机以二进制补码的形式保存所有的整数。
正数的原码、反码、补码都相同,负数的补码是其反码+1
十进制和二进制的转化
- 二进制转成十进制乘以2的幂数,例如二进制 1011 转化为十进制 2^3+2^1+2^0=11
- 十进制转成二进制除以2取余数,然后倒序排列 例如17转化为二进制:17%2=1,8%2=0,4%2=0,2%2=0,1%2= 1;倒序得到二进制:10001
二进制和八进制、十六进制的转化
三位二进制转化为八进制的一位、四位二进制转化为十六进制的一位。例如:110010101转化为八进制为:0625,转化为十六进制为0x195