-617这个十进制数怎么转为8进制数和16进制数啊

-617这个十进制数怎么转为8进制数和16进制数啊
2025-06-24 11:19:39
推荐回答(3个)
回答1:

一个简单的做法,调用sprintf就可以把你要的数字转换成8或者16进制的字符串。
#include
char buffer[255];

sprintf(buffer, "%o", -617); //%o代表8进制字符串
sprintf(buffer, "%x", -617); //%x代表16进制的字符串

你可能得到的数字看其来有点怪,因为是负数,但是结果是对的。8和16在普通电脑运算的时候不考虑正负。如果你一定要表示出负数,那就转换正的617,最后自己在结果前面加上负号就行了。

回答2:

先不管正负
先把617用短除法化为二进制,即1001101001,从后位开始3位一位化为八进制,即001对应的是1,101对应的是5,001对应的是1,1对应的是1,则八进制是1151。
再用二进制化为十六进制,从后位开始4位一位化为十六进制,1001对应的是9,0110对应的是6,10对应的是2,则十六进制为269,则
-617的八进制为-1151,十六进制为-269

回答3:

进制转换,仅仅是把绝对值做“进制转换”。
正负号,不可变动。
 
如:-617(十进制)
 =-10 0110 1001(二进制)
 =-1151(八进制)
 =-269(十六进制)