PDA

View Full Version : Cách tính trong CCS???


dtdat1909
19-12-2007, 12:13 AM
Bác nào giúp mình với. không biết trong CCS tính toán số thực như thế nào? mình có thể dùng cách ép kiểu như trong C được không?

VD:
float a=2.78;
int b;
b=(int)(a*100);

vậy b=278 có đúng không vậy các bác? kiểu int mặc định là 16 bit đúng vậy không các bác?

cám ơn các bác nhiều.

namqn
20-12-2007, 08:22 AM
Theo tài liệu hướng dẫn sử dụng của CCS C, số thực (float) được hỗ trợ đầy đủ, do đó bạn có thể thực hiện việc chuyển kiểu (casting) theo ý muốn (mặc dù trình biên dịch tự động chuyển kiểu).

Cũng theo tài liệu trên, int mặc định là int8 (số nguyên 8-bit). Bạn nên dùng int16 hay long nếu muốn chắc chắn dữ liệu có độ dài 16-bit.

Tôi có 2 đề nghị với bạn:

1. Download tài liệu hướng dẫn sử dụng của CCS C ở link http://www.ccsinfo.com/downloads/CReferenceManual.pdf

2. Viết thử đoạn chương trình của bạn, thêm vào các lệnh xuất dữ liệu (ra cổng RS232 để hiển thị trên một PC chẳng hạn), rồi biên dịch bằng CCS C, sau đó chạy thử chương trình xem kết quả ra sao. Một khi bạn đã đầu tư cho việc học CCS C, tôi tạm giả thiết là bạn đã có phần cứng để thử nghiệm.

Thân,

hanhluckyly
20-12-2007, 09:03 AM
Chào bạn


Theo mình thấy cách ép kiểu như vậy là đúng đó bạn. Nhưng đoạn code có vấn đề vì 278 lớn hơn kiểu định dạng int chỉ có 255 thôi

dtdat1909
21-12-2007, 08:20 AM
ah, mình phát hiện ra rồi. chỉ có kiểu int có độ dài 4 byte (bằng với kiểu float) mới đúng. Có nghĩa là để ép thành kiểu int từ kiểu float thì ta dùng kiểu ép là int32.

float a=2.78;
int32 b;
b=(int32)(a*100);

dtdat1909
21-12-2007, 08:21 AM
thanks các bác nhiều nha !