Từ 1 tới 9 trên tổng số 9 kết quả

Đề tài: Đổi số thập phân ra thập lục phân trong C#

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

    Mặc định Đổi số thập phân ra thập lục phân trong C#

    Làm thế nào để đổi ạ ? Dành cho amateur thôi, với cấu trúc lặp FOR là chủ yếu..Và cũng dùng cấu trúc trên để đổi số thập phân ra số nhị phân.Ai biết xin hướng dẫn giúp em. Thanks!

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

    Học thêm trong môn số học về cách đổi hệ thống số từ hệ 10 sang hệ n.
    Từ hệ 10 sang hệ n chỉ cần đệ quy là đủ, từ hệ n sang hệ 10 thì cũng chỉ cần for để nhân dồn.
    Trong forum có rất nhiều bài viết về chuyển đổi giữa nhị phân và thập phân, bạn xem và áp dụng tương tự.

  3. #3
    Ngày gia nhập
    06 2007
    Nơi ở
    TP.HCM
    Bài viết
    113

    Cứ dùng đệ quy như đoạn code sau:

    (không có thời gian để trình bày cho đẹp, dựa vào đó mà trình bày lại)
    Code:
        class Program
        {
            static private string soHex;
            static void Main(string[] args)
            {
                Console.WriteLine("Nhap so: ");
                string s = Console.ReadLine();
                int i = int.Parse(s);
                DtoH(i);
                Console.WriteLine(soHex);
                Console.ReadLine();
            }
    
            static private void DtoH(int d)
            {
                int r = d % 16;
                if (d - r == 0)
                {
                    string c= toChar(r);
                    soHex += c;
                }
                else
                {
                    soHex += toChar(r);
                    DtoH((d - r) / 16);
                }
            }
    
            static string toChar(int r)
            {
                string s = "123456789ABCDEF";
                char[] c = s.ToCharArray();
                return c[r - 1].ToString();
            }
        }
    Tìm hiểu thêm ở đây

    Gác Kiếm

  4. #4
    Ngày gia nhập
    09 2006
    Nơi ở
    /usr/share/.hack@
    Bài viết
    1,433

    Code:
    string decimalNumber = "32768";
    int number = int.Parse(decimalNumber);
    string hex = number.ToString("x");
    None!

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

    Dr thấy là cái Parse nó không phân tích được một số kiểu floating point. Cả 2 code của sunflower và Xcross87 đều chỉ đúng với số nguyên thôi.

    Dr cũng không có biết cách nào ngoài cách là tự xây dựng hàm để chuyển đổi. Về cách chuyển đổi thì không có gì khó.

    Cần tách số cần chuyển ra thành phần nguyên và phần thập phân.
    Theo Dr bạn nên xây dựng 2 hàm riêng lẻ. Để cho code nó sáng sủa hơn.

    Phần nguyên thì có thể dùng code của Pete cho ngắn gọn. Hoặc là sử dụng phương pháp chia lấy dư, cách này dễ và nhiều người biết nên Dr không giới thiệu.

    Còn phần thập phân thì Dr có ngồi viết cho bạn cái bảng sau. Bạn nhìn vào chắc chắn sẽ làm được.
    Code:
    0.01*2=0.02 	<1	=>0.0
    0.02*2=0.04 	<1	=>0.00
    0.04*2=0.08	<1	=>0.000
    0.08*2=0.16	<1	=>0.0000
    0.16*2=0.32	<1	=>0.00000
    0.32*2=0.64	<1	=>0.000000
    0.64*2=1.28	>1	=>0.0000001
    0.28*2=0.56	<1	=>0.00000010
    0.56*2=1.12	>1	=>0.000000101
    0.12*2=0.24	<1	=>0.0000001010
    0.24*2=0.48	<1	=>0.00000010100
    0.48*2=0.96	<1	=>0.000000101000
    0.96*2=1.92	>1	=>0.0000001010001
    0.92*2=1.84	>1	=>0.00000010100011
    0.84*2=1.68	>1	=>0.000000101000111
    0.68*2=1.36	>1	=>0.0000001010001111
    0.36*2=0.72	<1	=>0.00000010100011110
    0.72*2=1.44	>1	=>0.000000101000111101
    0.44*2=0.88	<1	=>0.0000001010001111010
    0.88*2=1.76	>1	=>0.00000010100011110101
    0.76*2=1.52	>1	=>0.000000101000111101011
    0.52*2=1.04	>1	=>0.0000001010001111010111
    0.04*2=0.08	<1	=>0.00000010100011110101110
    Sau đó kết quả chuyển đổi sẽ là ghép 2 kế quả của chuyển đổi phần nguyên và phần thập phân.
    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!

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

    Mặc định Đổi số thập phân ra thập lục phân trong C#

    ủa, vậy làm sao xuất ra được dạng 0xXX, VD: 0x02,0x04....từ các số thập phân.

  7. #7
    Ngày gia nhập
    10 2007
    Nơi ở
    HCMUNS
    Bài viết
    459

    Bạn nghiên cứu method .ToString(format) của obj bạn cần chuyển

    Ví dụ đổi sang dạng hex 4 chữ số thì number.ToString("x4");
    Keep moving forward!

    ... Retired ...

  8. #8
    Ngày gia nhập
    01 2008
    Bài viết
    31

    cám ơn nha! trong C# có những cái có sẵn mà mình không hề biết, lại fải ngồi code. fải học hỏi mấy bạn nhiều thoi.

  9. #9
    Ngày gia nhập
    12 2010
    Bài viết
    23

    Vậy nếu muốn chuyển từ Hex thành Dec thì phải làm sao mấy bác

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

  1. Nữ giáo viên xinh như thiên thần che đạn cho học sinh trong vụ thảm sát
    Gửi bởi ttsdung1388 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 16-12-2012, 03:36 AM
  2. Làm Chữ chạy trên form C# như thẻ <marquee> trong HTML thế nào?
    Gửi bởi magnet241 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 6
    Bài viết cuối: 05-04-2012, 11:55 AM
  3. In thẻ,hóa đơn từ các textbox,combobox,datetimepicker trong form C# như thế nào?
    Gửi bởi snoit trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 04-04-2012, 03:13 PM
  4. Sử lí như thế nào khi nhập rất chậm trong trình xoạn thảo trong devC
    Gửi bởi toansvcn trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 13
    Bài viết cuối: 23-05-2011, 10:04 PM
  5. Thao tác với XML Schema trong Visual Studio 2008 như thế nào?
    Gửi bởi napoleonit76 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 08-12-2009, 05:34 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