可以先转换成二进制 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进制
y=x[i]*pow(16,i).
这一句有问题。因为你输入的a,即现在的x,是一段字符串。需要先将字符串转换成数字,然后再进行运算,不然的话,系统会默认利用ascii值来进行运算,所以就出现了错误。
也可以改为y
=
(x[i]
-
48
)
*
pow(16,i).
把负号变成1就可以了啊!就是在二进制的617前面加个1就可以了!
学过计算机基础吗?
那里就有很好的表达式啊。
用程序写还是用什么?具体点...貌似不算个问题啊