2013-04-10 40 views
27

Làm thế nào để chuyển đổi int (4 byte) thành hex ("XX XX XX XX") không có chu kỳ?Chuyển đổi int thành hex với các số 0 hàng đầu

ví dụ:

i=13 hex="00 00 00 0D" 

i.ToString("X") lợi nhuận "D", nhưng tôi cần một giá trị hex 4-byte.

+0

http://stackoverflow.com/questions/1139957/c-sharp-convert-integer-to-hex-and-back-again – Joetjah

+0

@Joetjah Những câu trả lời chỉ đề cập đến ' X', mà OP đã biết. Câu hỏi này là về việc có chữ số '0' đứng đầu. – CodesInChaos

+0

Bạn có thể đóng tài khoản này dưới dạng trùng lặp nếu bạn tìm thấy một câu hỏi, nhưng câu hỏi bạn hiện đã đóng là không trùng lặp. Các câu trả lời ở đó đề nghị 'ToString (" X ")', không tạo ra các số 0 ở đầu mà OP yêu cầu. – CodesInChaos

Trả lời

48

Bạn có thể chỉ định số chữ số tối thiểu bằng cách nối thêm số chữ số thập phân bạn muốn vào chuỗi định dạng X. Vì hai chữ số hex tương ứng với một byte, ví dụ của bạn với 4 byte cần 8 chữ số thập phân. tức là sử dụng i.ToString("X8").

Nếu bạn muốn chữ thường, hãy sử dụng x thay vì X. Ví dụ: 13.ToString("x8") bản đồ đến 0000000d.

+0

Oh ... Cảm ơn! Tôi không nghĩ nó đơn giản ... – user2264990

8

thử điều này:

int innum = 123; 
string Hex = innum .ToString("X"); // gives you hex 
string Hex = innum .ToString("X8"); // gives you hex 8 digit 
Các vấn đề liên quan