[求助]十六进制到十进制的转换算法
如0xFFFF,为 -1;(呵呵,不知道正不正确)
总之,就是当最高位为 1 时,要转换成负数
如:
在最高位的符号位为正数(0)时好求,如下:
0x1111;转换如下:sum = 1*pow(16,0)+1*pow(16,1)+1*pow(16,2)+1*pow(16,3);
但当最高位的符号位为负数(1)时,例如:
0xFFFF;在二进制的转换如下,
转换成二进制:1111 1111 1111 1111,取反:0000 0000 0000 0000 再加1,成为0000 0000 0000 0001;
故sum = -1*pow(2,0);
[此贴子已经被作者于2007-5-19 19:57:57编辑过]