~ S'il vous plaît pardonnez-moi -AIDE - IEEE - 754 - extrait, normalisé, NAN, etc
- J'ai eu un précédent appelé IEEE - 754 - trouver signbit, exposant, frac, normalisé, etc ..
Cependant, je n'avais pas enregistré mon NIC et je ne peux pas l'éditer. (donc le poste est fondamentalement mort pour moi) Quelqu'un peut-il le supprimer? Ma question est également sans réponse. Donc je poste ceci avec un code différent.
- j'ai encore besoin de beaucoup d'aide ... alors s'il vous plaît DonT traiter ce post comme un doublon ...
J'ai trouvé peu de signe, peu d'exposant et mantisse ..
Qu'est-ce que dois-je tester pour trouver normalisé? si exp == 0?
Que dois-je tester pour l'infini? exp == 0xff et mantiassa == 0? Est-ce que le signe a quelque chose à voir avec ça?
Que dois-je tester pour trouver zéro? exp == 0 et mantisse == 0? Est-ce que le signe a quelque chose à voir avec ça?
Que dois-je tester pour trouver NAN? quelqu'un peut s'il vous plaît expliquer aussi simple que vous pouvez depuis que je suis juste un débutant! Dois-je appliquer d'autres masques?
- Y at-il un ordre dans lequel je suis supposé accomplir ce que je veux?
C'est ce que j'ai jusqu'à présent.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
int HexNumber;
printf("IEEE- 754 \n");
int a = 0x12345678;
unsigned char *c = (unsigned char*)(&a);
if (*c == 0x78) {
printf("\nlittle-endian\n");
} else {
printf("\nbig-endian\n");
}
printf("\n>");
scanf("%x", &HexNumber);
printf("\n%#x",HexNumber);
bool negative = !!(HexNumber & 0x80000000);
int exponent = (HexNumber & 0x7f800000) >> 23;
int mantissa = (HexNumber & 0x007FFFFF);
printf("\nsignBit %d,", negative);
printf("expbits %d,", exponent);
printf("fractbits %#x,", mantissa);
return 0;
}
... et ceci est ma sortie - qui est ce que je veux:
IEEE - 754
little-endian
>C0000000
0xc0000000
signBit 1,expbits 128,fractbits 0,
la lecture du projet de norme est agréable. Mais, quand nous testons zéro, comment savons-nous si c'est un plus ou un moins? même avec l'infini? – Steller
@Corey Il semble que la réponse d'Alok montre les bits dont vous avez besoin pour vérifier un flotteur. La valeur est '(-1)^[bit de signe] * le reste', donc si le bit de signe est défini, la valeur est négative. Le bit de signe utilisé est le même pour zéro et l'infini. –