使用分而治之的二进制到十进制转换

编程入门 行业动态 更新时间:2024-10-11 15:23:19
本文介绍了使用分而治之的二进制到十进制转换的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我目前只能从事一项任务,几乎到处都在寻找甚至暗示我要做什么.

赋值很简单,我们将得到一个以矢量形式的二进制数(例如[1,1,1,1],然后我们将计算该数的十进制形式,然后将其放回相同的向量形式(例如,[1,5]为上一个示例的答案).

起初我以为这将是一个简单的解决方案,但我很快发现我们将使用此方法来计算非常大的数字,例如二进制形式的300 1.

现在,当我意识到尝试直接进行计算的错误后,我很快找到了分而治之"的方法思想,但是我没有找到一个单独的地方来给出如何使用它的精确示例.上下文.

由于这是一项作业,所以我希望提出一个答案,该答案实际上可以解释该概念并提供示例,而不是直接的代码段.

先谢谢您

马修

解决方案

写一个以10为底的数学引擎.

应包括另一个10进制数的加法,以及int的乘法. (加倍就足够了)

遍历二进制数字,并跟踪与该数字相对应的以10为底的数字.

有条件地积累.

唯一困难的部分是基础10数学系统,其他所有内容都需要3到8行代码.

不幸的是,由于二进制数的任何数字都可能影响等效的基数10的任何数字,因此,有效执行此操作的方法非常有限.可能有一些花哨的方法,但是对于300位数,您应该不要打扰.

I am currently stuck on an assignment and have looked nearly everywhere for even a hint at what I am trying to do.

The assignment is simple, we are to be given a binary number in the form of a vector (e.g. [1,1,1,1] and we are to compute the decimal form of this number and put in back into the same vector form (e.g. [1,5] for the answer to the previous example).

While at first I thought this would have an easy solution, I soon found that we are to use this method to calculate extremely large numbers such as 300 1's in binary.

Now after I realized my mistake of trying to straight up calculate it, I soon found the "divide-and-conquer" method idea but I did not find a single place that gave a precise example of how to use it in this context.

Since this is an assignment, I would rather an answer be proposed that actually explains the concept and provides examples rather than a straight up block of code.

Thank you in advance,

Matthew

解决方案

Write a base 10 math engine.

It should include addition by another base 10 number, and multiplication by int. (well doubling is enough)

Iterate over the binary digits, keeping track of a base 10 number that corresponds to the digit.

Conditionally accumulate.

The only hard part is the base 10 math system, everything else takes 3 to 8 lines of code.

Sadly, there is very limited easy ways to do thus more efficiently, as any digit of a binary number can influence any digit of the equivalent base 10 number. There may be fancy ways, but for 300 digits you should not bother.

更多推荐

使用分而治之的二进制到十进制转换

本文发布于:2023-11-29 09:50:10,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1646051.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:分而治之   制到十进制

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!