负数如何转换成16进制或8进制,比如-816
答案:4 悬赏:70
解决时间 2021-02-20 10:20
- 提问者网友:绿海猖狂
- 2021-02-19 14:50
负数如何转换成16进制或8进制,比如-816
最佳答案
- 二级知识专家网友:情战辞言
- 2021-02-19 14:56
先转换成二进制再转换成16或8进制。
全部回答
- 1楼网友:苦柚恕我颓废
- 2021-02-19 18:22
加个负号
-816 16进制是-330
8进制-1460
- 2楼网友:寂寞的炫耀
- 2021-02-19 16:44
-0x12 换成10进制是 -10吗?个人觉得应该是-18吧。
楼主我觉得你的问题提法有点问题。
在计算机内部,是没有什么"+","-"这种符号的。
有无符号还是要依赖变量的类型来定的。
如
char a=0xff; // 有符号,因此是十进制的-1
unsigned char b=0xff; // 无符号,因此是十进制的255
对于变量而言,只有变量类型和变量值两个属性。
至于楼主说的16进制、8进制的转换大多数都是在变量输出到文本时才出现转换的吧。
下面的例子示例了变量a以不同的格式进行输出
char a=0xff;
printf("hex:%x,oct:%o,dec:%d,unsigned dec:%u",a,a,a,a);
输出后的文本串中就是不同进制的数值了。
楼主如果是从文本中读入数据进行转换可以参考以下下面代码:
int b;
scanf("%o",&b); // 以无符号8进制格式读入数值,放入整型变量b中
//其后对b的操作就不用管进制的问题了
// 假设读入数据为11(八进制),对应十进制的9
printf("%d",b); // 此句输出就是9
以上代码是否解决了楼主的进制转换问题呢?^_^
- 3楼网友:冷态度
- 2021-02-19 15:54
直接加负号即可。但小数转换比较麻烦,如八进制,小数点后第一位为1/8,第二位为1/64,以此类推,很多十进制里的有限小数转完后都成了循环小数。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯