Je me demande pourquoi quand je copie un numéro de 16 bits à un tableau à deux octets, il en résulte que la copie du premier index du tableau. Mon code est le suivant:Copie d'un nombre entier à un tableau à deux octets 16 bits
#include <iostream>
#include <stdint.h>
#include <stdio.h>
#include <cstring>
using namespace std;
int main(){
uint16_t my_num = 1; // This should be 0000 0000 0000 0001, right?
unsigned char my_arr[2]; // This should hold 16 bits, right?
memcpy(my_arr, &my_num, sizeof(my_num)); // This should make my_arr = {00000000, 00000001}, right?
printf("%x ", my_arr[0]);
printf("%x ", my_arr[1]);
cout << endl;
// "1 0" is printed out
return 0;
}
Merci à l'avance.
Votre appareil semble être peu endian. Les octets consécutifs sont stockés dans l'ordre "inverse" - d'abord '0x01', puis' 0x00'. –
On dirait que boutisme a votre chemin, puisque vous avez peut-être obtenu '00.000.001 000000000' – Shark