小编Sil*_*ide的帖子

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

如何控制构建工具和库的版本?

在源代码管理系统中包含编译器,库和其他工具有哪些建议?

在过去,我遇到了一些问题,尽管我们拥有所有的源代码,但构建旧版本的产品却是一个试图获得Visual Studio,InstallShield和其他工具的正确配置(包括用于构建产品的正确补丁版本.在我的下一个项目中,我想通过将这些构建工具检查到源代码控制中来避免这种情况,然后使用它们进行构建.这也简化了设置新构建机器的工作 - 1)安装我们的源代码控制工具,2)指向正确的分支,3)构建 - 就是这样.

我考虑的选项包括:

  • 将安装CD ISO复制到源代码控制 - 虽然这提供了我们需要的备份,如果我们必须返回到旧版本,它不是"实时"使用的好选项(每个构建都需要从安装步骤开始,这可以很容易地将1小时的构建变成3小时).
  • 将软件安装到源代码管理.ClearCase将您的分支映射到驱动器号; 我们可以在这个驱动器下安装软件.这不会考虑安装工具的非文件部分,例如注册表设置.
  • 安装所有软件并在虚拟机内设置构建过程,将虚拟机存储在源代码管理中,并确定如何让VM在引导时进行构建.虽然我们轻松捕获"构建机器"的状态,但我们获得了VM的开销,并且它对"为开发人员提供相同的工具问题"没有帮助.

这似乎是配置管理的一个基本概念,但我无法追踪任何资源以了解如何执行此操作.有什么建议?

version-control build-automation build-process clearcase

6
推荐指数
2
解决办法
910
查看次数