【问题标题】:C++, Integer and Char array conversion troubleC++、Integer 和 Char 数组转换麻烦
【发布时间】:2013-07-03 04:28:36
【问题描述】:

我有char 数组:

char* chararray = new char[33];

还有int

int exponent = 11111111;

我想做但不知道如何做的是:将exponent的值输入chararray。限制exponent 必须占用chararray 的第2 到第9 个值。 chararray 将全部是 32 个 0,我希望它变成 0xxxxxxxx0000....00,x 是 exponent 中的 8 位数字。

此外,没有像 atof 或 atoi 这样的内置转换函数。我还想避免使用不是你真正需要的浮点数或双精度数。

注意,这是为了让 IEEE754 32bit 值得到一些理解。

如有需要,将编辑以获取更多详细信息或说明。

【问题讨论】:

  • 循环,%/ 运营商是你的朋友。
  • 这里真的完全不需要new
  • 另请注意,对于所有 1 位整数,x+'0' 等于 'x'

标签: c++ arrays int


【解决方案1】:

'0'初始化数组后试试这个:

for(int i=9; i>=2; i--) {
        chararray[i] = (exponent%10) + '0';
        exponent = exponent/10;
    }
chararray[32] = '\0';

【讨论】:

  • 您将数字向后打印到chararray ;-)。最容易从右侧开始,然后向左返回(即chararray[10-i] = exponent % 10 + '0';)....
  • 是的,你是对的。编辑了帖子!用11111111检查了测试代码,这就是为什么不能抓住它:)。
猜你喜欢
  • 2016-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-31
  • 1970-01-01
  • 1970-01-01
  • 2012-03-17
  • 2018-11-04
相关资源
最近更新 更多