ペ悠然杰 发表于 2022-10-3 20:00:14

30天JAVA入门到入土-7day

自动类型转换:在JAVA进行赋值或运算时,精度小的类型自动转换为精度大的数据类型
                        数据类型 按 精度(容量) 排序两条线不发生自动转换
                              char -> int -> long -> float -> double
                              byte-> short-> int-> long-> float-> double
                              char 、 byte 、 short 三个在进行运算时 会直接提升至 int
                                        基本数据类型:一共8种 【所占字节】
                                                1.数值型:
                                                      整数类型(byte【1】,short【2】,int【4】,long【8】)
                                                      浮点(小数)类型(float【4】,double【8】)
                                                2.布尔型(boolean【1】),存放 true , false
                                                3.字符型(char【2】),存放单个字符 ‘ a ’
                                        1 byte =8 bit (bit 是计算机最小单位字节是最小基本单位)

原码、反码、补码

1、二进制的最高位是符号位 :0表示正数 1表示负数
2、正数的原码、反码、补码都一样(正数三码合一)
3、负数的反码 = 他的原码符号位不变,其他位取反(0->1 , 1->0)
4、负数的补码 = 他的反码 + 1,负数的反码 = 负数的补码 - 1
5、0 的反码,补码都是 0
6、java 没有无符号数
7、在计算机运算的时候,都是以补码的方式来运算的
8、当我们看运算结果的时候,要看他的原码(重点)



位运算符
按位与 & :两位为1 结果为1 否则为0                        (全1为1 否则0)
按位或 | : 两位有一个为1 结果为1 否则为0                (有1为1 否则0)
按位异或 ^ : 两位一个为0 一个为1 结果为1 否则为0   (不一样为1 否则0)
按位取反~ :0变11变0
算数右移 >> : 低位溢出 符号位不变 并用符号位补溢出的高位
算数左移 << : 符号位不变 低位补 0
逻辑右移 / 无符号右移 >>> :低位溢出 高位补 0

int a = 1>>2; //先转2进制 在进行计算本质为 1 / 2 / 2 = 0

int c = 1<<2;//先转2进制 在进行计算   本质为 1 * 2 * 2 =4


//位运算
public class BitOperator{
        //编写一个main方法
        public static void main(String[] args){
                //1、得到2的补码 => 2 的原码 (int = 4个字节 = 32个bit)
                        //2的补码:0000 00000000 00000000 00000000 0010(二进制)
                //2、得到3的补码 => 3 的原码
                        //3的补码:0000 00000000 00000000 00000000 0011(二进制)
                //3、按位 &
                        //2的补码:0000 00000000 00000000 00000000 0010(二进制)
                        //3的补码:0000 00000000 00000000 00000000 0011(二进制)
                // 2 & 3:0000 00000000 00000000 00000000 0010 &运算后的补码
                //计算机用补码运算 用原码来表示结果 正数三码合一
                //4、转换为十进制:0000 00000000 00000000 00000000 0010
                System.out.println(2&3);
        }
}


页: [1]
查看完整版本: 30天JAVA入门到入土-7day