View Single Post
Old 15-12-2008, 11:37 PM   #22
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi han_nang_008 View Post
bác namqn có thể cop đoặn code đấy cho em được ko ah, code chuyển số thập phân sang chuỗi, chuyển số nguyên 16 bit sang chuỗi với,
web của bác cho em ko vào được, phiền bác quá.
bác cho em hỏi thêm hàm làm tròn 1 số tron C30 là j hả bác, ví dụ làm tròn số 13,6 thành 14
Thank bác nhiều
Code chuyển số thập phân 16-bit sang chuỗi ASCII (d4..d0):
Code:
void putdec( short int n )
    {
        unsigned char d4, d3, d2, d1, d0, q;

        if (n < 0) {
            putchar( '-' );
            n = -n;
        }

        d1 = (n>>4)  & 0xF;
        d2 = (n>>8)  & 0xF;
        d3 = (n>>12) & 0xF;

        d0 = 6*(d3 + d2 + d1) + (n & 0xF);
        q = (d0 * 0xCD) >> 11;
        d0 = d0 - 10*q;

        d1 = q + 9*d3 + 5*d2 + d1;
        q = (d1 * 0xCD) >> 11;
        d1 = d1 - 10*q;

        d2 = q + 2*d2; 
        q = (d2 * 0x1A) >> 8;
        d2 = d2 - 10*q;

        d3 = q + 4*d3;
        d4 = (d3 * 0x1A) >> 8;
        d3 = d3 - 10*d4;

        putchar( d4 + '0' );
        putchar( d3 + '0' );
        putchar( d2 + '0' );
        putchar( d1 + '0' );
        putchar( d0 + '0' );
    }
MPLAB C Compiler for dsPIC có các hàm làm tròn số như sau: floor()-làm tròn xuống (tức là chỉ lấy phần nguyên, 13.9 => 13), và ceil()-làm tròn lên (tức là lấy số nguyên lớn hơn gần nhất, 13.4 => 14). Bạn nhớ dùng #include <math.h> ở đầu tập tin mã nguồn.

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263

thay đổi nội dung bởi: namqn, 15-01-2009 lúc 08:22 PM.
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn