Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 16 kết quả

Đề tài: Chuyển đổi hệ thập phân sang nhị phân không dùng mảng???

  1. #1
    Ngày gia nhập
    01 2007
    Bài viết
    4

    Mặc định Chuyển đổi hệ thập phân sang nhị phân không dùng mảng???

    Mình có bài tập viết chương trình chuyển từ hệ thập phân sang hệ nhị phân, code thì có thể viết được nhưng có một thắc mắc thế này. Không biết có thể in ra chuỗi nhị phân kết quả mà không dùng mảng không?

  2. #2
    Ngày gia nhập
    07 2006
    Nơi ở
    Hanoi, Vietnam
    Bài viết
    2,750

    Không hiểu ý đồ lắm, có phải muốn lấy ra dạng số hệ binary (0101b). Bạn có thể tìm hiểu để embe một đoạn ASM code xem. Rất tiếc Dreaminess không còn nhớ nhiều về ASM nên không thể giúp chi tiết hơn được.

    Lưu ý: Bạn nên chú ý cách viết tiêu đề nhé. Có thể hơi phiền nhưng hiện tại đó là quy định, và thực sự nó cũng không khó khăn gì. Phải không?
    Email: admin[@]congdongcviet.com | CC to: info[@]congdongcviet.com
    Phone: 0972 89 7667 (Office: 04 6329 2380)
    Yahoo & Skype: dreaminess_world (Vui lòng chỉ rõ mục đích ngay khi liên hệ, cảm ơn!)

    Một người nào đó coi thường ý thức kỷ luật cũng có nghĩa là người đó đã coi thường tương lai số phận của chính bản thân người đó. Những người coi thường ý thức kỷ luật sẽ không bao giờ có được sự thành công trong sự nghiệp!

  3. #3
    Ngày gia nhập
    11 2006
    Bài viết
    633

    Đệ quy, chia liên tiếp cho 2, nó sẽ lưu trữ trong máy theo dạng stack và trả ra đúng như mình mong muốn.

  4. #4
    Ngày gia nhập
    10 2006
    Nơi ở
    Rừng Amazon
    Bài viết
    101

    Đệ quy, thực chất là dùng stack để làm mảng cho ta, đó không phải là giải pháp mà chủ topic cần.

    Các số được lưu trong bộ nhớ dưới dạng nhị phân, vì vậy ta có thể đọc tất cả các bit của nó và in ra màn hình là xong.

    Chi tiết về các phép toán với bit bạn có thể xem ở đây (và các link đi kèm cùng nó).
    http://msdn2.microsoft.com/ru-ru/library/x04xhy0h.aspx

  5. #5
    Ngày gia nhập
    08 2006
    Nơi ở
    Hải Phòng
    Bài viết
    218

    Mã lệnh inline asm trong pascal thì như thế này, còn trong C thì mình không rõ lắm nhờ các bạn chuyển dùm.

    Pascal Code:
    1. label start;
    2. var bien: Integer;
    3. begin
    4.   bien:=-2; {Dien gia tri so khac vao}
    5.   writeln;
    6.   asm
    7.             mov ah, 02h {Sử dụng hàm 02 ngắt 21 đưa kí tự ra ngoài màn hình}
    8.                                {Mã ascii của kí tự được lưu trong dl }
    9.             mov cx, 16;  {khởi tạo bộ đếm cho vòng lặp}
    10.      start: rol bien, 1  {xoay bien di một bit sang bên trái}
    11.             mov dx, 1    
    12.             and dx, bien {đọc bit 0}
    13.             add dl, 48    {cộng thêm 48 để được mã ascii của nó}
    14.             int 21h        {in ra màn hình}
    15.             loop start    
    16.   end;
    17. end.

    * Lệnh rol (rotate left) hoạt động giống như shl (lệnh dịch trái ) chỉ có điều bit cao nhất (msb) không mất đi mà được đưa về vị trí đầu tiên (lsb). Lợi dụng điểm này ta xoay biến 16 lần để đọc toàn bộ bit của nó.

  6. #6
    Ngày gia nhập
    01 2007
    Bài viết
    4

    Mặc định Chuyển đổi hệ thập phân sang nhị phân không dùng mảng???

    @huynguyen: mình sẽ thử cách của bạn
    @dream: xin lỗi vì lần đầu mình post bài lần sau mình sẽ chú ý
    @all: Thanks mọi người đã giúp đỡ

    Chào các bạn,
    hiện tại mình đang nghiên cứu về việc lấy handle của file được lưu vào trong database, và phát file đó lên.
    Nhưng việc này mình chưa làm bao giờ nên không biết hướng giải quyết, hay cách làm như thế nào.

    cụ thể như thế này:
    - Mình có database là oracle, khi nhập liệu thì sẽ upload file có định dạng .wav và đẩy thẳng file đó vào trường FILE ở trong database. Trường FILE có data type là BLOB
    - Bây giờ mình muốn lấy handle của file đó từ trong database để phát thành file âm thanh. Vậy mình phải làm như thế nào?

    Rất mong các bạn chỉ dẫn cho mình, cảm ơn các bạn đã đọc!!!

    các anh chị nào biết về vấn đề này giúp em với.

    em muốn lấy file từ trường BLOB trong oracle ra và lưu trên máy. Sau đó open file đó lên.
    ACE nào đã làm cái này cho em code mẫu với !!!!!!!!
    Trên đỉnh vinh quang không có dấu chân kẻ lười biếng

  7. #7
    Ngày gia nhập
    04 2007
    Nơi ở
    Ho Chi Minh City
    Bài viết
    9

    Bạn thử code này nhé....
    C Code:
    1. ;=========================================================
    2. #include <stdio.h>
    3. #include <conio.h>
    4.  
    5. void main(){
    6. // Xoa ma hinh
    7. asm{
    8.     mov AX,0x02
    9.     int 0x10
    10. }
    11. printf("\n Nhap mot so thap phan (MAX: 65535): ");
    12. //Nhap Decmical
    13. asm xor BX,BX
    14.     nhapso:
    15. asm{
    16.         mov AH,0x01
    17.         int 0x21
    18.         cmp AL,0x0D
    19.         jne Next2
    20. }
    21. asm jmp DONE
    22.     Next2:
    23. asm{
    24.         cmp AL,0x30
    25.         jb DONE
    26.         cmp AL,'9'
    27.         ja DONE
    28.         sub AL,0x30
    29.         mov SI,0xA
    30.         xor AH,AH
    31.         xchg BX,AX
    32.         mul SI
    33.         add AX,BX
    34.         xchg BX,AX
    35.         jmp nhapso
    36. }
    37.     DONE:
    38. printf("\n Cam on vi da nhap xong.\n");
    39. printf("\n So nhi phan trong thanh ghi BX la: \n ");
    40. for(int xx=0;xx<2;xx++){
    41.     asm{
    42.             xchg BL,BH
    43.             jmp ShowBin
    44.     }
    45.     buoc3:
    46. }
    47. asm jmp exitall
    48.  
    49. ShowBin:
    50. asm mov CX,8
    51.     ShowRegister2:
    52. asm{
    53.         mov DL,0
    54.         ROL BL,1
    55.         ADC DL,'0'
    56.         mov AH,0x02
    57.         int 0x21
    58.         loop ShowRegister2
    59.         jmp buoc3
    60. }
    61. exitall:
    62. //Dung man hinh, tuong tu ham getch()
    63.     asm {
    64.         mov AH,0x01
    65.         int 0x21
    66.     }
    67. }
    68.  
    69. ;=========================================================
    70. Nếu muốn số âm thì chỉ cần (NEG BX) là xong ngay.  :D
    Đã được chỉnh sửa lần cuối bởi Kevin Hoang : 23-12-2007 lúc 09:43 PM. Lý do: Lưu ý: Đưa code vào tag code

  8. #8
    Ngày gia nhập
    09 2006
    Bài viết
    711

  9. #9
    Ngày gia nhập
    11 2006
    Bài viết
    6

    Trích dẫn Nguyên bản được gửi bởi Goliats Xem bài viết
    Mình có bài tập viết chương trình chuyển từ hệ thập phân sang hệ nhị phân, code thì có thể viết được nhưng có một thắc mắc thế này. Không biết có thể in ra chuỗi nhị phân kết quả mà không dùng mảng không?
    theo mình nghĩ bài này có 2 cách giả quyết
    -dùng hàm có sẵn của C.
    -dùng LinkList
    và 1 vài cách khác nữa(chưa nghĩ ra)

  10. #10
    Ngày gia nhập
    12 2007
    Nơi ở
    giữa thiên đường và địa ngục
    Bài viết
    91

    uhm.có cách này nhưng không biết có phải cách bạn cần không? bạn xem thử nha
    Code:
    void main()
    {
      //nhập n la số cần đổi
     for(i=7;i>0;i--)
     printf("%d",(n>>i)&1);
    
    }
    Đã được chỉnh sửa lần cuối bởi chjp xinh kut3 : 27-01-2008 lúc 08:11 PM. Lý do: nói lại có 1 chỗ sai!!!!!!!!!
    Tinh Quái,

    Vâng, là Chjp Xinh. Đanh đá và điêu ngoa
    .

Các đề tài tương tự

  1. Làm thế nào để chuyển đổi Unicode tổ hợp sang Unicode dựng sẳn dùng std::codecvt?
    Gửi bởi doicanhden trong diễn đàn Thắc mắc CTDL & Giải thuật
    Trả lời: 2
    Bài viết cuối: 02-08-2013, 10:27 AM
  2. Lập trình C Dùng stack để chuyển Thập phân sang Nhị phân!
    Gửi bởi tuanle_1108 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 19
    Bài viết cuối: 24-11-2012, 02:26 AM
  3. Bài tập C++ Dùng strtok cắt chuỗi và lỗi khi dùng atof() chuyển char sang float
    Gửi bởi salomontong trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 10-03-2012, 05:18 PM
  4. dùng google bị chuyển sang Qbyrd. Sửa như thế nào?
    Gửi bởi conganhbn91 trong diễn đàn Thắc mắc chung
    Trả lời: 1
    Bài viết cuối: 03-01-2011, 10:04 AM
  5. Chuyển hệ thập phân sang nhị phân chỉ dùng vòng for không dùng mảng
    Gửi bởi zodjac1990 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 24-02-2009, 06:16 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn