【发布时间】: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