2 ldd379077640 ldd379077640 于 2016.09.23 11:18 提问

十六进制转换十进制问题 求大神解答

FFFFFFFFDEAC8A12 如何转化为十进制,再取绝对值

6个回答

JenaeLi
JenaeLi   2016.09.23 11:32

用数学公式推导出十进制,然后按公式编程就可以了吧。十六进制转十进制,从最右边开始向左依次用该位的数乘上16的0次幂、1次幂、2次幂、、、直到最左边数字乘完,然后把这些数字加起来就是十进制了,希望能帮到你啦,

hijack00
hijack00   Rxr 2016.09.23 12:06

数了一下,上面的数值有64bit,所以要定义一个8字节的整型变量(int64_t, long long?),如果上面的字符串再长一点的话,就不能使用C的基本类型了,这时候就必须要考虑用字符串来做,否则会溢出

yoyo1204
yoyo1204   2016.09.23 11:35

在16进制中,10~15分别由A~E表示。

图片说明

cs1075341779
cs1075341779   2016.09.23 11:44

无论多少进制转换为十进制都是一样的,使用每一位的数值与当前位的位权相乘,然后相加,例如:十六进制数 A2 转换为十进制为 2*16的0次方加上10*16的一次方 的和 为162

qs52955339
qs52955339   2016.09.23 12:10

转化结果 18446744073150432080

senllang
senllang   2016.09.23 14:17

转换方法上面都说过了;
取绝对值,你这个有符号的数字的话,最高位bit是1,那就是负数,把最高位取反,最后的数字加1;如果最高是F就换成7,再转换后,加1,就是绝对值

senllang
senllang 哦,说错了,把所有位取反,再加1
大约一年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片