修改了打印16进制的输出函数，使用位运算来计算，而不是用除法，对于负数不能求出对应的值