Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1503 connectés 

  FORUM HardWare.fr
  Programmation

  [C] Portabilité opérations bas niveau

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] Portabilité opérations bas niveau

n°69291
Pschitt
Posté le 03-11-2001 à 00:53:31  profilanswer
 

J'aimerait comprendre pourquoi les opérations bas niveau(& | ^ << >> champs de bits) de manipulation de bits sont dites peu, voir pas portables d'1 machine à 1 autre ou d'1 compilo à 1 autre.
Alors que l'API WIN32 les utilisent allègrement(LPARAM, WPARAM, LOWORD(l) ...)
Je souhaiterais les utiliser pour concaténer 2 infos (1 bit d'état + 1 mot de 31 bits) dans entier unsigned int en retour d'une fonction.
 
Merci

mood
Publicité
Posté le 03-11-2001 à 00:53:31  profilanswer
 

n°69310
LetoII
Le dormeur doit se réveiller
Posté le 03-11-2001 à 11:32:09  profilanswer
 

En fait ça dépend essentiellement du processeur de la machine sur lequel tourne ton programme. Suivant comment il va traiter les entiers tu va pas obtenir la même chose, mais ce comportement doit être relativemet standard sur les machines de type PC.

n°69316
flo850
moi je
Posté le 03-11-2001 à 11:55:40  profilanswer
 

ca depend d'une histoire de petit indien et de grand indien.
apres, je peux pas t'en dire plus , j'ai joyeusement fait cracké ce cours , mais si tu fat une recherche tu dois trouver
je crois que ca indique la position du bit depoids fort


---------------

n°69352
krolours1
Posté le 03-11-2001 à 14:12:03  profilanswer
 

flo850 a écrit a écrit :

ca depend d'une histoire de petit indien et de grand indien.
apres, je peux pas t'en dire plus , j'ai joyeusement fait cracké ce cours , mais si tu fat une recherche tu dois trouver
je crois que ca indique la position du bit depoids fort  




c pas indien c'est endian :) c pas pareil
 
ça indique la position de l'octet de poid fort dans 1 mot
les pc sont little-endian : l'octet de poid faible est au début
par exemple 0xFFEE s'écrit 0xEEFF
 
La pluspart des autres proc sont big-endian (motorola 68k) et certains peuvent fonctionner dans les 2 modes (powerpc)

n°69354
krolours1
Posté le 03-11-2001 à 14:15:49  profilanswer
 

Pschitt a écrit a écrit :

J'aimerait comprendre pourquoi les opérations bas niveau(& | ^ << >> champs de bits) de manipulation de bits sont dites peu, voir pas portables d'1 machine à 1 autre ou d'1 compilo à 1 autre.
Alors que l'API WIN32 les utilisent allègrement(LPARAM, WPARAM, LOWORD(l) ...)
Je souhaiterais les utiliser pour concaténer 2 infos (1 bit d'état + 1 mot de 31 bits) dans entier unsigned int en retour d'une fonction.
 
Merci  




 
En plus des problèmes d'endian il y a aussi des différences
entre les types c suivant l'architecture :
sur i386, un int fait 32 bits  
sur alpha ou ultrasparc l'int fait 64 bits

n°69374
Pschitt
Posté le 03-11-2001 à 15:21:04  profilanswer
 

Y'a apparemment 1 possibilité de vérifier la taille des divers types entiers avec la lib. limits.h :
 
http://groups.google.fr/groups?hl= [...] omp.lang.c
 
Et oui je vous aient mis en concurrence :D


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [C] Portabilité opérations bas niveau

 

Sujets relatifs
[JAVA] est-il possible de faire des opérations sur un objet date ?quel niveau pour un système de news en php3
Tutorial sur Visual C++ 6 .. niveau debutant[DELPHI] quelques petites questio niveau fonctionnalites :)
portabilité en javaChercher doc/code pour lire une image BMP en niveau de gris
Portabilité de VC++ et ses dll.... 
Plus de sujets relatifs à : [C] Portabilité opérations bas niveau


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR