2013-04-22 50 views
-1

嘿傢伙,所以我有一個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); 

它不會增加的。任何想法爲什麼?可能與舍入和什麼有關。

謝謝。

+7

2/3等於零。 – MYMNeo 2013-04-22 10:05:21

+0

嗯?我應該先擲2/3到第一個? 編輯 - 哈哈,忘了基本BODMAS ..所以是2/3 = 0然後乘以2 = 0. -.-。謝謝! – Travv92 2013-04-22 10:06:41

+1

顯式聲明'var'爲'signed char',或者當您使用不同的編譯器時,冒着最終使用'unsigned char'的風險。 – 2013-04-22 10:31:51

回答

1

嘗試做

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

謝謝,這工作! – Travv92 2013-04-22 10:08:09

2

試試這個

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