创建时间: 2022-10-14 02:49:13更新时间: 2022-10-14 02:49:13#-127 原码 反码 补码char类型-127的有符号右移1位操作 -127的原码: 1111 1111 -127的反码: 1000 0000 -127的补码: 1000 0001 -127转换成整形高位用1填: 1111 1111 1111 1111 1111 1111 1000 0001 -127右移1位, 高位用1填补: 1111 1111 1111 1111 1111 1111 1100 0000 -127右移1位的反码: 1111 1111 1111 1111 1111 1111 1011 1111 -127右移1位的原码: 1000 0000 0000 0000 0000 0000 0100 0000 8位只能标识 [-128,127] << : 左移运算符,右边空出的位用0填补,高位左移溢出则舍弃该高位:num << 1,相当于num乘以2 >> : 右移运算符,左边空出的位用0或者1填,正数用0负数用1填,低位右移溢出则舍弃该位。num >> 1,即num除以2 >>> : 无符号右移,忽略符号位,空位都以0补齐 byte[] a = new byte[10]; a[0] = -127; a[1] = -128; System.out.println(a[0]); int c = a[0] & 0xFF; System.out.println(c); a[2] = (byte) (a[0]<<1); System.out.println(a[2]); a[3] = (byte) (a[0]>>1); System.out.println(a[3]);