C语言 十进制负数如何转换八、十六进制?

2024-11-15 16:59:05
推荐回答(5个)
回答(1):

可以先转换成二进制 617/2 308 余1
/2 154 余0
/2 77 余0
/2 38 余1
/2 19 余0
/2 9 余1
/2 4 余1
/2 2 余0
/2 1 余0
/2 0 余1
所以为 1001101001 取其的补码加1 就=-617 在换算为8 16进制

回答(2):

y=x[i]*pow(16,i).
这一句有问题。因为你输入的a,即现在的x,是一段字符串。需要先将字符串转换成数字,然后再进行运算,不然的话,系统会默认利用ascii值来进行运算,所以就出现了错误。
也可以改为y
=
(x[i]
-
48
)
*
pow(16,i).

回答(3):

把负号变成1就可以了啊!就是在二进制的617前面加个1就可以了!

回答(4):

学过计算机基础吗?
那里就有很好的表达式啊。

回答(5):

用程序写还是用什么?具体点...貌似不算个问题啊