|
06-01-2009, 03:35 PM | #1 |
Nhập môn đệ tử
Tham gia ngày: Oct 2007
Bài gửi: 5
: |
Hỏi về dùng số nhị phân
em thấy rất nhiều thuật toán về biến đổi các số nhị phân sang BCD nhưng ko thấy thuật toán BCD sang nhị phân bao giờ. bác nào có thể giới thiệu cho em quyển sách viết về các phép toán số nhị phân. tiếng việt hay tiếng anh cang tốt. em xin cảm ơn
|
06-01-2009, 05:47 PM | #2 | |
Trưởng lão PIC bang
|
Trích:
http://www.electro-tech-online.com/m...cd-binary.html Các phép toán số học trên số nhị phân cũng chẳng khác gì trên số thập phân. Hệ nhị phân chỉ là một cách biểu diễn con số ở format khác, nhằm thuận lợi hơn cho việc hiện thực trên máy tính số. Bạn cần tìm hiểu về phép toán nào thì cứ liệt kê ra đây. 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 |
|
07-01-2009, 10:42 AM | #3 |
Nhập môn đệ tử
Tham gia ngày: Oct 2007
Bài gửi: 5
: |
em không hiêu trực quan có nghĩa thế nào. nếu em dùng assembly thì làm thế nào. nếu như anh giới thiệu thì vẫn dùng phép nhân.lại phải dùng thêm một hàm nhân. nếu như chuyển từ nhị phân sang BCD thì chỉ cần dịch bít rồi khiểm tra xem có lớn hơn 9 hay không. nêu đúng thì công thêm 6. em muốn tìm một thuật toán dạng như vậy. nếu có anh giới thiệu cho em nhá
|
07-01-2009, 04:36 PM | #4 | |
Trưởng lão PIC bang
|
Trích:
Sau đây là thuật toán chuyển số BCD 5 chữ số thành số nhị phân 16-bit (áp dụng đúng nguyên tắc trên): http://www.piclist.com/techref/micro...b-5d16b-ph.htm Bài viết trước đó của bạn chỉ yêu cầu về thuật toán, chứ không cho biết bạn đang viết code hợp ngữ. 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 |
|
10-01-2009, 05:46 PM | #5 |
Đệ tử 6 túi
Tham gia ngày: Oct 2008
Nơi Cư Ngụ: HCM
Bài gửi: 137
: |
vậy còn số âm thì sao anh Namqn?
|
10-01-2009, 06:14 PM | #6 |
Trưởng lão PIC bang
|
Nếu PIC có hỗ trợ các phép toán trên số có dấu thì chúng ta dùng các phép toán đó. Ngược lại, chúng ta xét dấu của hai toán hạng để xác định dấu của kết quả, rồi chuyển chúng về dạng không dấu, và dùng các thuật toán đã có cho số không dấu. Ví dụ, nhân hai số cùng dấu sẽ cho dấu +, và nhân hai số ngược dấu sẽ cho dấu -.
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 |
14-01-2009, 10:05 AM | #7 |
Đệ tử 6 túi
Tham gia ngày: Oct 2008
Nơi Cư Ngụ: HCM
Bài gửi: 137
: |
Nhưng cái quan trọng là làm sao để biết đó là số âm anh Namqn àh!chứ em dùng các câu lệnh như :
int8 x; if(x<0) giá trị của x sẽ được giảm từ từ trong vòng lặp hoặc từ nút nhấn giảm bên ngoài. thì kết quả của lệnh if trên luôn là false anh àh!mặc dù mình biết là x đã được giảm nhỏ hơn 0 rồi. |
14-01-2009, 10:57 AM | #8 |
Đệ tử 3 túi
|
Bạn khai báo x là sô nguyên 8 bit không dấu, thì làm gì có chuyện giảm nhỏ hơn 0, lệnh if trên luôn false vì x không âm. Thử khai báo signed int8 xem.
|
14-01-2009, 02:54 PM | #9 |
Đệ tử 6 túi
Tham gia ngày: Oct 2008
Nơi Cư Ngụ: HCM
Bài gửi: 137
: |
tối nay thử liền!
|
|
|