嘿家伙,所以我有一个char
,我想添加一些整数/双向它。字符必须是一个有符号的字符,所以我不能把它作为一个int。在c中为char添加值?
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等于零。 – MYMNeo 2013-04-22 10:05:21
嗯?我应该先掷2/3到第一个? 编辑 - 哈哈,忘了基本BODMAS ..所以是2/3 = 0然后乘以2 = 0. -.-。谢谢! – Travv92 2013-04-22 10:06:41
显式声明'var'为'signed char',或者当您使用不同的编译器时,冒着最终使用'unsigned char'的风险。 – 2013-04-22 10:31:51