2013-04-22 1 views
-1

안녕 얘들 아, 내가 char을 가지고 있고 그것에 정수/double을 추가하고 싶다. char는 signed 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가 0 인보십시오. – MYMNeo

+0

흠? 내가 2/3을 두 번 먼저 캐스팅해야할까요? EDIT - 하하, 기본 BODMAS를 잊어 버렸습니다. 그렇다면 2/3 = 0에 2를 곱합니다. -.-. 감사! – Travv92

+1

'var'을 명시 적으로'signed char'로 선언하십시오. 그렇지 않으면 다른 컴파일러를 사용할 때'unsigned char'를 사용하게 될 위험이 있습니다. –

답변

1

시도

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

감사합니다. – Travv92

2

일이

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