负数的表现形式
负数的表现形式为正数取反+1.其原理为正负相加为0;在计算机世界中,0被看做是一个正数,而不是数学世界中的非正亦非负。
负数的二进制表示:
5 :00000101
-5:11111011(正数各位取反,+1)
5+(-5) = 100000000 1被溢出结果为0
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];
}
本文出自 “全栈大牛ing” 博客,请务必保留此出处http://skdevps.blog.51cto.com/6849425/1771023
原文地址:http://skdevps.blog.51cto.com/6849425/1771023