Chuyển ký tự sang số rồi tính toán bị sai? Lỗi do đâu?

Tran luong

Trần Đình Lượng, Đt: 0989285187-HCM
#1
Chuyện là mình có 2 ký tự:
ICon_buff2[0] = '2';ICon_buff2[1] = '5';
Mình muốn biến nó thành giá trị 250, sau đó chia ra để được 3 số 2,5,0 để đưa lên máy tính thì OK, nó in ra đúng là 250.
nhưng khi mình tăng lên
ICon_buff2[0] = '2';ICon_buff2[1] = '6'; thì đọc ra bị sai, in ra màn hình là 004. Anh em xem mình SAI chỗ nào giúp em nhé.

Mã:
ICon_buff2[0] = '2';ICon_buff2[1] = '6';
CO2Z =0x0000;
CO2Z =  (ICon_buff2[0] - 48)*100 +  (ICon_buff2[1] - 48)*10 ;// CHUYEN THANH SO 450

fputc(CO2Z/100 +48,COMM_RS232);                             // truyen mot ky tu len cong COMM_RS232
fputc((CO2Z%100)/10 +48,COMM_RS232);                             // truyen mot ky tu len cong COMM_RS232
fputc((CO2Z%100)%10 +48,COMM_RS232);                             // truyen mot ky tu len cong COMM_RS232

fprintf(COMM_RS232,"\n\r");                        // xuong dong
delay_ms(300);
kq6.png


kq5.png


KQ4.png


KQ3.png
 

Quảng cáo Google