Salut,
J'ai des échantillons de PCM de type short, j'aimerai les convertir en unsigned short sans utiliser un cast.
Merci d'avance.
Salut,
J'ai des échantillons de PCM de type short, j'aimerai les convertir en unsigned short sans utiliser un cast.
Merci d'avance.
Je ne connais pas le type pcm, mais si le format est bon, je pense que copier bit à bit peut résoudre le problème.
Il existe différentes méthodes, en voici une:
Voilà une fonction pour récuperer le n-ième bit et une autre pour fixer le n-ième bit. Suffit de boucler pour les copier tous.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 /** * Rend le n-ieme bit du nombre "nombre". * On commence avec le bit 1 pour les unites et on * finit avec le bit 8 pour 128, etc. */ char NiemeBit(int nombre, int n) { return((nombre & (1<<(n-1)))>>(n-1)); } /** * Change le n-ieme bit pour le mettre a value */ void SetNiemeBitCC(short *nombre, int n, int value) { if(value) { *nombre = *nombre | (1<<(n-1)); } else { *nombre = *nombre & (~(1<<(n-1))); } }
Partager