相关疑难解决方法(0)

如何在C中将128位整数转换为十进制ascii字符串?

我正在尝试将存储为4个无符号整数的数组的128位无符号整数转换为C中的十进制字符串表示:

unsigned int src[] = { 0x12345678, 0x90abcdef, 0xfedcba90, 0x8765421 };
printf("%s", some_func(src)); // gives "53072739890371098123344"
Run Code Online (Sandbox Code Playgroud)

(上面的输入和输出示例完全是虚构的;我不知道输入会产生什么.)

如果我要使用十六进制,二进制或八进制,这将是一个简单的掩码和位移到剥离最不重要的字符.但是,在我看来,我需要做基数为10的分裂.不幸的是,我不记得如何跨多个int执行此操作,并且我使用的系统不支持大于32位的数据类型,因此使用128位类型是不可能的.使用不同的语言也是不对的,我宁愿为这一个操作避免使用大数字库.

c string int ascii

13
推荐指数
2
解决办法
1万
查看次数

在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
查看次数

标签 统计

c ×2

ascii ×1

base-conversion ×1

int ×1

string ×1