【问题标题】:Is there a way to convert octal input to decimal/binary output without using math.h library and pow?有没有办法在不使用 math.h 库和 pow 的情况下将八进制输入转换为十进制/二进制输出?
【发布时间】:2021-12-03 00:42:30
【问题描述】:

这里是初级程序员。

有没有一种方法可以在不使用函数或 math.h 库的情况下输入八进制值并期望十进制或二进制输出?我有一个使用循环来实现这一点的想法,但我对它应该是什么样子以及使用什么循环一无所知。我感谢您的帮助。谢谢。

  1. 允许使用 stdio.h 函数
  2. 不允许使用 math.h 函数

【问题讨论】:

  • 是的,有。查看bitwise 操作。实际上使用pow 是完全错误的..
  • 当你说“库函数”时,你是什么意思?你有什么完整的作业或练习?请edit您的问题包含它,包括所有要求和限制。
  • 还有 google octal decimal c 你应该会找到你需要的
  • 正如我刚才在a nearby question 的评论中所说,“字符6,减去字符常量'0',就是数字6。如果你有数字6,并且数字 5,然后是 6 × 10 + 5 = 65。”那是十进制。要转换八进制,只需乘以 8 而不是 10。即 6 × 8 + 5 = 53。
  • 您是在处理来自控制台窗口的文本输入和输出吗?

标签: c function loops math.h


【解决方案1】:

每个人。我找到了解决方案。我使用十进制到八进制代码和切换值。

十进制到八进制的while循环:

while(input){
            rem1=input%8;
            input=input/8;
            ans1=ans1+(rem1*place_value);
            place_value1=place_value1*10;
            }

八进制转十进制的while循环:

while(input){
            rem1=input%10;
            input=input/10;
            ans1=ans1+(rem1*place_value);
            place_value1=place_value1*8;
            }

对于八进制转二进制,只需从八进制十进制中获取答案,然后使用十进制转二进制即可。谢谢大家的帮助。

【讨论】:

  • 对于寻求帮助的其他人,minimal reproducible example 会更好。哦,顺便说一句,请采用代码风格并坚持下去。使用空格,明确布尔条件等等。
  • 作为初学者,我会注意这一点。谢谢。
  • 那么,请edit你的回答。
猜你喜欢
  • 1970-01-01
  • 2022-01-16
  • 2015-09-15
  • 2011-08-21
  • 1970-01-01
  • 1970-01-01
  • 2021-07-09
  • 2014-03-13
  • 2015-09-06
相关资源
最近更新 更多