2010-09-06 98 views
39

Tôi có một danh sách các số như sau:Cách hiển thị số thập lục phân trong C?

0, 16, 32, 48 ...

tôi cần phải ra những con số trong hệ thập lục phân như:

0000 , 0010,0020,0030,0040 ...

Tôi đã thử giải pháp như:

printf("%.4x",a); // where a is an integer 

nhưng kết quả mà tôi nhận được là:

0000, 0001, 0002, 0003, 0004 ...

Tôi nghĩ mình gần đó. Bất kỳ ai có thể trợ giúp vì tôi không phải là rất tốt tại printf trong C.

Cảm ơn.

+5

Hãy thử 'printf ("% d:% .4x \ n ", a, a)', tôi nghĩ 'a' của bạn không có giá trị bạn nghĩ. –

+0

vâng, bạn nói đúng. tôi đã vắng mặt. xin lỗi cho câu hỏi ngu ngốc này ... – root

Trả lời

86

Hãy thử:

printf("%04x",a); 
  • 0 - Left-miếng đệm số với zero (0) thay vì không gian, nơi đệm được chỉ định.
  • 4 (chiều rộng) - Số lượng tối thiểu ký tự cần in. Nếu giá trị cần in ngắn hơn số này, kết quả phải được hợp lý trong chiều rộng này bằng cách đệm ở bên trái bằng ký tự pad. Theo mặc định, đây là một khoảng trống, nhưng số 0 đầu tiên chúng tôi đã sử dụng chỉ định số không làm char pad. Giá trị không bị cắt bớt ngay cả khi kết quả là lớn hơn .
  • x - Chỉ định cho hệ thập lục phân số nguyên.

More here

+0

kết quả là: 0000, 0001, 0002, 0003, 0004 ... những gì tôi cần là: 0000,0010,0020,0030,0040 ... – root

+0

Nó phù hợp với tôi. http://www.ideone.com/2VzY1 – codaddict

+0

hmm, lạ thật ... Tôi đã thử nó nhưng luôn hiển thị là 0000, 0001, 0002, 0003, 0004 (tôi sử dụng Eclipse trong Ubuntu, gcc ...) – root

0

Mã của bạn không có vấn đề. Nó in theo cách bạn muốn. Ngoài ra, bạn có thể làm điều này:

printf("%04x",a); 
4

tôi sử dụng nó như thế này:

printf("my number is 0x%02X\n",number); 
// output: my number is 0x4A 

Chỉ cần thay đổi số "2" để bất kỳ số lượng ký tự Bạn muốn in;)

0

Bạn có thể sử dụng đoạn mã sau:

#include<stdio.h> 
int main(int argc, char *argv[]){ 
    unsigned int i; 
    printf("decimal hexadecimal\n"); 
    for (i = 0; i <= 256; i+=16) 
     printf("%04d  0x%04X\n", i, i); 
    return 0; 
} 

Nó in cả số thập phân và thập lục phân ở 4 vị trí bằng 0 ding.

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