Hallo Ich habe eine doppelte Variable mit Wert mit dem Namen outputSampleRate 0x41886a0000000000C - Notwendigkeit Erklärung auf printf Optionen Verhalten
ich andere Kombination von printf Optionen versuchen, und ich bekomme durch den Ausgang sehr verwirrt. Hier
ist der Code:
printf("\n\noutputSampleRate 0x%16x \n", outputSampleRate);
printf("outputSampleRate 0x%llx \n", outputSampleRate);
printf("outputSampleRate 0x%.llx \n", outputSampleRate);
printf("outputSampleRate 0x%.16x \n", outputSampleRate);
printf("outputSampleRate 0x%16llx \n", outputSampleRate);
printf("outputSampleRate 0x%.16llx \n\n", outputSampleRate);
Hier ist der Ausdruck auf der Konsole:
outputSampleRate %llx 0x 0
outputSampleRate %16x 0x41886a0000000000
outputSampleRate %.llx 0x41886a0000000000
outputSampleRate %.16x 0x0000000000000000
outputSampleRate %16llx 0x41886a0000000000
outputSampleRate %.16llx 0x41886a0000000000
Bitte korrigieren Sie mich, wenn ich falsch liege:
%llx print as long long (64 bit) in hex representation
%16x print 16 digits, ignore leading 0s in hex representation
%.llx ????what is this?
%.16x print at least 16 digits in hex repesentation
%16llx print 16 digits as a long long in hex representation
%.16llx print at least 16 digits as a long long in hex representation
Außerdem habe ich die folgenden Fragen:
1. How does %llx give me 0x 0 ?
2. Why %.llx and %.16x behave differently ?
Vielen Dank für jede Eingabe, um diesen C-Neuling zu speichern.
http://en.cppreference.com/w/c/io/fprintf – a3f
Aus Ihrer Frage nicht klar ist, was du erreichen willst. Wenn Sie nur einen Ausdruck in hexadezimaler Schreibweise erhalten möchten, verwenden Sie das Format "% a". Dieser ist für Fließkommawerte. –