ajout programme c traitement héxa vers décimal
This commit is contained in:
parent
5b19568bef
commit
0d8b6fa9cd
58
gbgb2.c
Normal file
58
gbgb2.c
Normal file
|
@ -0,0 +1,58 @@
|
|||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdint.h>
|
||||
|
||||
typedef struct {
|
||||
uint8_t octet1;
|
||||
uint8_t octet2;
|
||||
uint8_t octet3;
|
||||
uint8_t octet4;
|
||||
} quartet;
|
||||
|
||||
int main ( int argc, char **argv)
|
||||
{
|
||||
int i;
|
||||
char buff[26];
|
||||
char buff2[18];
|
||||
int32_t values[8];
|
||||
uint32_t valbin[8];
|
||||
quartet value;
|
||||
|
||||
while (fread(&buff, 26, 1, stdin)) {
|
||||
/*buff[25] = '\0';*/
|
||||
if (strncmp(buff, "#################\n", (size_t)18) == 0) {
|
||||
if (!(fread(&buff2, 18, 1, stdin))) {
|
||||
fprintf(stderr, "Erreur lesture après ###...#");
|
||||
return(1);
|
||||
} else {
|
||||
/*buff2[17] = '\0';*/
|
||||
strncpy(buff, &buff[18], 8);
|
||||
strncpy(&buff[8], buff2, 18);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
i = 3;
|
||||
|
||||
value.octet1 = buff[3*i+1];
|
||||
value.octet2 = buff[3*i+2];
|
||||
value.octet3 = buff[3*i+3];
|
||||
value.octet4 = 0;
|
||||
/*memcpy(&values[i], &value, sizeof(quartet));*/
|
||||
|
||||
valbin[i] = buff[3*i+1]*256*256*256 + buff[3*i+2]*256*256 + buff[3*i+3]*256;
|
||||
memcpy(&values[i], &valbin[i], sizeof(int32_t));
|
||||
|
||||
if (value.octet1 & 0b10000000) {
|
||||
printf("Valeur négative trouvée: %02x %02x %02x %d\n", value.octet1, value.octet2, value.octet3, values[i]);
|
||||
}
|
||||
fprintf(stdout, "%02x %02x %02x %d", value.octet1, value.octet2, value.octet3, values[i]/256);
|
||||
|
||||
/*
|
||||
for (i=1; i<25; i++) {
|
||||
fprintf(stdout, "%02x ", buff[i]);
|
||||
}
|
||||
*/
|
||||
printf("\n");
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue