基数转换和数字访问
Number Base conversion and digits access?
语言是c++
我必须从0 - n中读取一些数据,理论上n可以是无穷大。根据n的值,我必须把数字从十进制改为十进制,即使它的基数是10000。如果我读入5个数字,n=5,我必须把它们转换成base5
也就是说,我不确定如何进行转换,但我确信我可以通过阅读一些文章来获得它。但我真正关心的是当我转换成n为底时我的结果会是什么类型来存储在数组中?很长时间吗?
一旦我在某个数组中获得了转换后的数字,我如何访问每个数字中的每个单独的数字以便稍后进行操作?
谢谢。
基本上,您将对数字执行的大多数操作都是基数不变的。这意味着你可以在不知道基数的情况下对两个数进行加/减/多/分(甚至可以进行幂/根/对数运算)。
这样想,当计算机将两个无符号整数相加时,它并没有做什么特别的事情,即使它实际上处理的是一个32位的以2为基数的数。
你可以使用int(或任何你需要的数据类型),并在显示时转换基。
从十进制到进制的转换是通过除法/模数完成的。X为十进制数,b为目标进制。
- r = x % b
- y = (x-r): b
- 将x替换为y,从1开始重复,直到y变为0
- 结果为r,自下而上
在它的下面,你必须创建一个std::map
,为r中的数字替换模式,即对于16进制的一些条目将是10 -> A, 11 -> B
。这意味着,你必须考虑一个非常大的n
的表示形式。
BTW:考虑一本关于编程101的书,十进制到bin/oct/十六进制的转换总是解释,并且很容易适应其他基数
相关文章:
- 通过方法访问结构
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- 检查输入是否不是整数或数字
- 使用不带参数的函数访问结构元素
- 如果我只是不访问queue_front节点的子节点,而是将它们推到队列中呢?还是BFS吗
- 用于访问容器<T>数据成员的正确 API
- 访问者访问变体并返回不同类型时出错
- 如何(从固定列表中)选择一个数字序列,该序列将与目标数字相加
- 尝试通过多个向量访问变量时,向量下标超出范围
- 引发未经处理的异常:简单 C++ 程序中的读取访问冲突,动态增加数组长度以存储数字
- 如何在我的优先队列中访问10个最大数字
- 我在spoj-lastdig2中使用我的代码 - 重新访问的最后一位数字
- 0x80020009 OLE异常访问除0以外的任何数字
- 如何在BST中从最高到最低打印特定范围内的数字,访问的节点最少
- 如何在无法访问 vblank 的情况下实现平均 60(或 30,或其他数字)FPS?
- 为什么我可以索引到数字超出范围的三维数组中,但仍然可以访问数组中的最后一个数字
- 基数转换和数字访问
- 如何将Table(数字列表)从Lua传递到C并访问它
- 访问c++ Vector作为数字