相关疑难解决方法(0)

在c中的基数10中打印大基数256数组

我有一系列未签名的字符在c我试图在10号基础上打印,我被卡住了.我认为这将在代码中得到更好的解释,因此,给出:

unsigned char n[3];
char[0] = 1;
char[1] = 2;
char[2] = 3;
Run Code Online (Sandbox Code Playgroud)

我想打印197121.

这对于小型256基数阵列来说是微不足道的.一个可以简单地1*256 ^ 0 + 2*256 ^ 1 + 3*256 ^ 2.

但是,如果我的数组大100字节,那么这很快就会成为一个问题.C中没有100字节大的整数类型,这就是我将数字存储在unsigned char数组中的原因.

我怎么能在10号基地有效地打印出这个数字呢?

我有点迷茫.

c base-conversion

8
推荐指数
2
解决办法
4601
查看次数

将真正的大数字从二进制转换为十进制并打印出来

我知道如何将二进制转换为十进制.我知道至少2种方法:桌子和电源;-)

我想将二进制转换为十进制并打印此十进制.而且,我对这个"十进制"不感兴趣; 我想要打印它.

但是,正如我上面所写,我只知道将二进制转换为十进制的两种方法,并且它们都需要添加.所以,我在二进制中计算1或0的某个值,并将其添加到记忆值.这是一个很薄的地方.我有一个非常大的数字(1和64个零).转换时我需要在某些"变量"中放置一些中间结果.在C中,我有一个`int'类型,它只有4个字节,不超过10 ^ 11.

因此,在从二进制转换为十进制时,我没有足够的内存来存储中间结果.正如我上面所写,我对这个小数点不感兴趣,我只想打印结果.但是,我没有看到任何其他方法来解决它;-(是否有任何解决方案从二进制"只打印"?

或者,也许,我应该使用类似BCD(二进制编码的十进制)的东西进行中间表示?我真的不想用这个,因为它不是那么跨平台(英特尔的处理器有内置功能,但对于其他我需要编写自己的实现).

我很高兴听到你的想法.谢谢你的耐心等待.

语言:C

c binary decimal bignum bcd

5
推荐指数
2
解决办法
7960
查看次数

标签 统计

c ×2

base-conversion ×1

bcd ×1

bignum ×1

binary ×1

decimal ×1