हेक्स के लिए scanf, प्रत्येक संख्या में टाइप का उपयोग फ्लोट करने के लिए, मैं बाहर प्रिंट दो पंक्तियों के लिए अपने कार्यक्रम चाहते हैं: उदाहरण के लिएपरिवर्तित पूर्णांक
byte order: little-endian
> 2
2 0x00000002
2.00 0x40000000
> -2
-2 0xFFFFFFFE
-2.00 0xC0000000
मैं इसे हेक्स में बाहर 2 मुद्रित करने के लिए प्राप्त कर सकते हैं लेकिन मुझे एक फ्लोट की आवश्यकता है और निश्चित रूप से मैं स्कैनफ को के रूप में स्कैन करने की आवश्यकता नहीं है जब मुझे int
पर स्कैन करने की आवश्यकता है यदि मैं प्रिंट करने की कोशिश करता हूं तो मुझे फ्लोट के रूप में डाला जाता है, मुझे शून्य मिलता है। अगर मैं फ्लोट के रूप में स्कैन करता हूं तो मुझे सही आउटपुट मिलता है। मैंने int को फ्लोट में कनवर्ट करने का प्रयास किया है लेकिन यह अभी भी शून्य के रूप में आता है।
यहाँ मेरी उत्पादन अब तक
Int - float - hex
byte order: little-endian
>2
2 0x000002
2.00 00000000
ऐसा लगता है कि मैं एक नाव ठीक क्यों अभ्यस्त यह एक हेक्स के रूप में मुद्रित करने के लिए परिवर्तित कर रहा हूँ? यदि मैं एक फ्लोट के रूप में स्कैन करता हूं तो मुझे पहले उदाहरण की तरह सही हेक्स प्रतिनिधित्व मिलता है। यह कुछ आसान होना चाहिए। मैं एक दशमलव के रूप में स्कैन करने के लिए की आवश्यकता है मन में रखना मैं cygwin में यह चल रहा
यहाँमैं अब तक है ..
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int HexNumber;
float convert;
printf("Int - float - hex\n");
int a = 0x12345678;
unsigned char *c = (unsigned char*)(&a);
if (*c == 0x78)
{
printf("\nbyte order: little-endian\n");
}
else
{
printf("\nbyte order: big-endian\n");
}
printf("\n>");
scanf("%d", &HexNumber);
printf("\n%10d ",HexNumber);
printf("%#08x",HexNumber);
convert = (float)HexNumber; // converts but prints a zero
printf("\n%10.2f ", convert);
printf("%#08x", convert); // prints zeros
return 0;
}
क्या आप हमें कुछ कोड दिखा सकते हैं? –
क्षमा करें। इसके पोस्ट – Steller
इनपुट के रूप में 1 दर्ज करते समय मेरे लिए शून्य प्रिंट नहीं करता है। आप क्या हासिल करने का प्रयास कर रहे हैं? आपका इनपुट नंबर क्या है? –