1. 负数的表现形式

    负数的表现形式为正数取反+1.其原理为正负相加为0;在计算机世界中,0被看做是一个正数,而不是数学世界中的非正亦非负。


    负数的二进制表示:

    5 :00000101

    -5:11111011(正数各位取反,+1)

    5+(-5) = 100000000   1被溢出结果为0

  2. byte类型数字转换为16进制数的过程及原理

    byte类型占用8个位,将其转换为16进制数时,将低四位与0x0F相与,将高四位转换成为0000

    高四位则右移4位,再与0x0F相与,因为与0x0F相与,所以是否为有符号右移变得不再有意义,因为经过&运算,不管是否有符号,高位全部变为0。程序如下:


    public static String convert(byte b){

    int low = b & 0x0F;

    int high = (b >> 4) & 0x0F;

    char[] arr = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};

    return "" + arr[high] + arr[low];

    }