gpt4 book ai didi

c++ - 如何最好地将 BCD 作为一项练习来实现?

转载 作者:行者123 更新时间:2023-11-30 00:42:30 26 4
gpt4 key购买 nike

我是一名学习 C++ 的初学者(自学)程序员,最近我决定实现一个二进制编码的十进制 (BCD) 类作为练习,这样我就可以在 Project Euler 上处理非常大的数字。 .我想尽可能从根本上做到这一点,从头开始。

我开始使用一个整数数组,其中输入数字的每个数字都保存为一个单独的整数。我知道每个 BCD 数字只能用 4 位编码,所以我认为为此使用整个 int 有点矫枉过正。我现在正在使用 bitset<4> 的数组。

  1. 使用像这样的库类是否也太过分了?
  2. 你会认为这是作弊吗?
  3. 有更好的方法吗?

编辑:这样做的主要原因是作为练习——我不想使用像 GMP 这样的库,因为重点是自己制作类(class)。有没有办法确保每个十进制数字只使用 4 位?

最佳答案

只有一个音符,使用 bitset<4> 的数组的将需要与长数组相同的空间量。 bitset 通常通过将一个字大小的整数数组作为位的后备存储来实现,因此按位操作可以使用按位字操作,而不是字节操作,因此一次可以完成更多操作。

另外,我怀疑你的动机。 BCD 通常用作在系统之间发送数字串时的压缩表示。通常与算术没有任何关系。你真正想要的是一个任意大小的整数算术库,比如 GMP .

关于c++ - 如何最好地将 BCD 作为一项练习来实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/450561/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com