2010-05-15 28 views
5

Có ai có đoạn mã hoặc lớp học sẽ mất nhiều thời gian và biến nó thành chuỗi 16 byte Hex không?Mục tiêu-C thập phân đến cơ số 16 Chuyển đổi hex

tôi đang tìm cách để chuyển dữ liệu như thế này

long long decimalRepresentation = 1719886131591410351; 

và biến nó thành x hành

//Base 16 Hex Output: 17DE435307A07300 

Các% này không muốn làm việc cho tôi

NSLog(@"Hex: %x",decimalRepresentation); 
//console : "Hex: 7a072af" 

Như bạn có thể thấy điều đó thậm chí không gần. Bất kỳ trợ giúp nào đều được đánh giá cao!

Trả lời

10

%x in một số nguyên không dấu trong biểu diễn thập lục phân và sizeof(long long) != sizeof(unsigned). Xem ví dụ "Data Type Size and Alignment" trong hướng dẫn chuyển đổi 64bit.

Sử dụng ll specifier (thats hai trường thấp L) để có được những kết quả mong muốn:

NSLog(@"%llx", myLongLong); 
+0

Cảm ơn bạn, đó là nhanh chóng! Tôi chưa thử trên iPhone, bạn có biết nó hoạt động trên bộ xử lý iPhone không? – Justin

+0

Định dạng 'printf()' được xác định rõ, vì vậy tôi không mong đợi bất kỳ sự ngạc nhiên nào ở đó. –

+0

nevmind của tôi xin lỗi xấu – Justin

Các vấn đề liên quan