进制
进制是一种计数方式。最常用的就是十进制,包含0~9数字组成,满10进位。十进制是人们常用的计数方式。
而计算机的计数方式是二进制,由0,1组成。
当然还有八进制,以0开头表示,由0~7数字组成。十六进制,以0X开头,由0~9,A,B,C,D,E,F组成。
进制之间的转换
十进制–>二进制:短除2,直到商为0,从下往上取余数。
二进制–>十进制:2的(1的所在位-1)次方求和。
二进制的位运算
- 与运算&:通常用于按位置0,与0与运算
- 或运算| :通常用于按位置1,与1或运算
- 异或运算^ :按位反转,与1异或运算;保存原值,与0异或运算;自身异或等于0
- 取反~:0取反为1,1取反为0
- 左移<<:高位溢出舍弃,低位补0。当溢出不含1时,相当于 X 2操作
- 右移>>:高位正补0负补1,低位溢出舍弃
- 无符号右移:高位补0
负数的二进制表示
高位为1表示负数,高位为0表示正数。
补码表示:首先求绝对值原码,接着原码取反得到反码,反码加1得到补码。
相反,负数补码求值,补码减1得到反码,反码取反得到原码,源码求绝对值,最后加上负号。
java内置进制转换函数
java中的数据类型
基本数据类型
int数据类型:
- byte 8位
- short 16位
- int 32位,4字节
- long 64位
float数据类型:
- 单精度float 32位,4字节
- 双精度double 64位
char数据类型:
- char 16位,2字节,unicode编码
boolean数据类型:
- boolean 1字节
对应的类类型:Byte、Short、Integer、Long、Float、Double、Character、Boolean
java中的数据类型转换为字节数组
- int类型转换为byte字节数组
按字节(8位)依次取int的4个字节,然后选择小端模式(低位数据存储在低地址)或者大端模式(高位数据存储在低地址)存储在byte[]中。
- String类型转换为byte字节数组
getbyte()方法