
Đổ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
16-01-2008, 09:54 PM
huynguyen
XCoworker Member
Ngày gia nhập: 11 2006
Bài viết: 979
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
17-01-2008, 09:11 AM
sunflower
Thành viên nhiệt tình
Ngày gia nhập: 06 2007
Nơi ở: TP.HCM
Bài viết: 171
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
17-01-2008, 10:30 AM
Xcross87
[Cviet] Tech Supporter
Ngày gia nhập: 09 2006
Nơi ở: /usr/share/.hack@
Bài viết: 2,148
Code:

string decimalNumber = "32768";
int number = int.Parse(decimalNumber);
string hex = number.ToString("x");
__________________
cviet.tech_support
#5
17-01-2008, 09:08 PM
Kevin Hoang
Founder & Administrator
Ngày gia nhập: 07 2006
Nơi ở: Hà Nội
Bài viết: 2,022
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
Phone: 0972 89 7667 (Office: 04 667 00248)
Yahoo & Skype: dreaminess_world
Trình bày code chuyên nghiệp với code tag nâng cao. Click để xem chi tiết...
#6
26-01-2008, 09:45 AM
jetli88
Thành viên chính thức
Ngày gia nhập: 01 2008
Bài viết: 41
ủ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
26-01-2008, 10:01 AM
nhc1987
XCoworker Member
Ngày gia nhập: 10 2007
Nơi ở: HCMUNS
Bài viết: 654
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
26-01-2008, 11:26 PM
jetli88
Thành viên chính thức
Ngày gia nhập: 01 2008
Bài viết: 41
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
13-01-2011, 05:50 PM
khanhnd88
Thành viên mới
Ngày gia nhập: 12 2010
Bài viết: 20
Vậy nếu muốn chuyển từ Hex thành Dec thì phải làm sao mấy bác

