【问题标题】:Add values to char in c?在c中向char添加值?
【发布时间】:2013-04-22 10:04:05
【问题描述】:

大家好,我有一个char,我想给它添加一些整数/双精度。 char 必须是有符号的 char,所以我不能将其设为 int。

char var = -55;
printf("Char is %d, add, char is now: %d\n", var, var+2);

该代码有效,但只要我想添加分数或其他内容...

printf("Char is %d, add, char is now: %d\n", var, var+2/3*2);

它根本没有添加。任何想法为什么?可能与舍入等有关。

谢谢。

【问题讨论】:

  • 2/3 等于零。
  • 嗯?我应该先将 2/3 转换为双倍吗?编辑 - 哈哈,忘记了基本的 BODMAS .. 所以是的 2/3 = 0 然后乘以 2 = 0。-.-。谢谢!
  • var明确声明为signed char,否则当您使用不同的编译器时,您可能会最终使用unsigned char

标签: c char unsigned-char


【解决方案1】:

试试这个

printf("Char is %d, add, char is now: %d\n", var, (int)(var+2/3.0*2));

【讨论】:

    【解决方案2】:

    试试看

    printf("Char is %d, add, char is now: %d\n", var, (int)( var+(2/(double)3)*2 ));
    

    【讨论】:

      猜你喜欢
      • 2022-08-11
      • 1970-01-01
      • 2013-06-11
      • 2014-05-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多