Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

informatique/autodidacte-apprendre la manipulation de bits

66 réponses
Avatar
bpascal123
Bonjour,

Est-ce qu'on peut envisager d'apprendre le langage C sans conna=EEtre la
manipulation de bits et faire quelque chose avec ? Ou alors il faut
n=E9cessairement apprendre d'autres langages (apprendre la POO me semble
indispensable pour une approche g=E9n=E9rale...).

bpascal/heron maladroit

10 réponses

1 2 3 4 5
Avatar
Samuel DEVULDER
a écrit :
En fait, je me dis que le C est devenu un standard du fait que les
principaux auteurs étaient salariés dans des entreprises assez
puissantes pour imposer ses standards (AT&T ou Bell) à une époque où
la croissance était à 2 chiffres..Peut-être je m'avance un peu sans
trop savoir mais les auteurs du K&R étaient salariés et leur ouvrage
appartient (les droits) à l'entreprise pour laquelle ils travaillaient
au moment ou ils l'ont écrit, non?



Hum... je n'arrive pas à suivre ta pensée. Tu te disperse beaucoup à mon
avis. Quel rapport entre ce qui précède et ton pb initial: (aider à)
écrire/débugger les drivers linux?

Je me demande entre autre si aujourd'hui, d'autres ne peuvent pas
imposer des standards (communauté Androîd supportée par Google...par
exemple) ? Mais c'est un autre sujet.



La programmation sous Android c'est vachement loin des drivers linux
quand même.

La programmation sur les appareils mobiles (tactiles et autres) avec
les outils disponibles peuvent-elles nécessiter des connaissances du
niveau de la manipulation de bits?



Ne te bloque pas autour de la manip de bits. Comme quelqu'un l'a dit
plus tôt, c'est pas difficile. Tu la retrouve quasi partout cette
technique qui n'est pas propre au C d'ailleurs.

Mais c'est juste une technique et pas un mot-de-passe magique qui
t'ouvre toutes les portes quand tu le connais car il y en a beaucoup
d'autres à connaitre pour avancer. En programmant ou mieux en lisant les
codes sources des autre codeurs du va découvrir et comprendre pleins
d'autres techniques.

sam.
Avatar
xtof.pernod
Le 13/06/2010 23:03, a fait rien qu'à écrire :
En fait, je me dis que le C est devenu un standard du fait que les
principaux auteurs étaient salariés dans des entreprises assez
puissantes pour imposer ses standards (AT&T ou Bell) à une époque où
la croissance était à 2 chiffres..Peut-être je m'avance un peu sans



Une autre possibilité est que le language C était puissant, et répondait
à des besoins. Ce qui est encore et toujours le cas (sinon on ne serait
pas en train d'en débattre..)

trop savoir mais les auteurs du K&R étaient salariés et leur ouvrage
appartient (les droits) à l'entreprise pour laquelle ils travaillaient
au moment ou ils l'ont écrit, non?



Très certainement. Je ne connais pas le droit américain, mais de ce
côté de l'Atlantique, tout ce que tu développes appartient en principe
à la boite qui t'emploie comme développeur / rédacteur / etc.
(du reste, y'a pas que leurs bouquins qui appartenaient à ATT, tout
Unix et ses outils aussi)

Je me demande entre autre si aujourd'hui, d'autres ne peuvent pas
imposer des standards (communauté Androîd supportée par Google...par
exemple) ? Mais c'est un autre sujet.



Ouais.. En effet. Ce genre de cauchemar pourrait très bien se produire.
Si c'est pas déja fait <mode parano="off"/>

La programmation sur les appareils mobiles (tactiles et autres) avec
les outils disponibles peuvent-elles nécessiter des connaissances du
niveau de la manipulation de bits?



hum.. avec une question aussi va{-ste, -gue}, toutes sortes de réponses
(et leurs contraires) sont possibles.. Ex:

Quels genre d'outils, plus précisément:

. Un générateur d'interface humain <=> machine ? Alors, non. Tu peux
développer des applis, peut-être uniquement avec la souris, sans
pondre une ligne de code ou presque, et sans te préoccuper de savoir
ce que c'est qu'un bit ; du reste, on peut vivre sans.

. Un compilateur C ? Alors oui, ça aide bien. Du reste, le bit, c'est
le truc le plus basique à manier, par définition, et vu que ça n'a que
2 états (vrai/faux, allumé/éteint, 0/1...). Si tu coinces là-dessus,
c'est peut-être que la progra. n'est pas ton "truc"..

--
christophe.
Avatar
Samuel DEVULDER
Marc Espie a écrit :
In article ,
Samuel DEVULDER wrote:
a écrit :
Tu passes du coq à l'âne. Que vient faire la POO dans les opérateurs
bitwise ? De plus, la POO n'est pas un langage ...


En fait, je me demandais si on pouvait manipuler des bits avec des
langages orientés objets?


Oui.. mais en héritage des langages de bas niveau. C'est jugé par les
puristes comme une erreur, car on peut avoir des langages a objets sans
aucune notion de bits explicites (cf Smalltalk où mêmes les booleens
sont des objets).



C'est marrant, quand je regarde mon Squeak, j'y vois des operations de



Il n'y a pas que Squeak non plus (comme il n'y a pas que GCC quand on
fait du C).

manipulation de bits sur les entiers, et des Byte, qui sont par exemple
utilises pour lire des images.



Oui et quel rapport avec les Boolean dont je parle?

Et quand je regarde ces manipulations de bits, ben celles-ci sont marquees
comme implementees comme "primitives" sur les entiers standards.



J'ai pas dit le contraire. Le fait que ce soit une primitive montre même
que c'est une concession faite avec bas niveau.

Je cite Smalltalk parce que la façon originale d'y représenter les
Booleans y est particulièrement élégante et parfaitement "objet". Si tu
ajoute là dessus les bloc-closures, on comprends assez vite que pour les
puristes des langages à objets, même un simple if/then/else, est
vraiment autre chose qu'un mot-clef pré-défini dans le langage.

(et heureusement, parce que ca permet d'avoir une implementation decente
de smalltalk avec du graphique qui tourne a une vitesse raisonnable.



Oui et c'est une concession au pragmatisme (parce que les puristes seuls
ne vont généralement pas loin).

sam.
Avatar
espie
In article <4c156057$0$22374$,
Samuel DEVULDER wrote:
Marc Espie a écrit :
In article ,
Samuel DEVULDER wrote:
a écrit :
Tu passes du coq à l'âne. Que vient faire la POO dans les opérateurs
bitwise ? De plus, la POO n'est pas un langage ...


En fait, je me demandais si on pouvait manipuler des bits avec des
langages orientés objets?


Oui.. mais en héritage des langages de bas niveau. C'est jugé par les
puristes comme une erreur, car on peut avoir des langages a objets sans
aucune notion de bits explicites (cf Smalltalk où mêmes les booleens
sont des objets).



C'est marrant, quand je regarde mon Squeak, j'y vois des operations de



Il n'y a pas que Squeak non plus (comme il n'y a pas que GCC quand on
fait du C).



Sauf que c'est a peu pres le seul systeme smalltalk a peu pres complet
disponible de facon generale gratuitement... oui, j'ai vu GNU smalltalk
et little smalltalk...

manipulation de bits sur les entiers, et des Byte, qui sont par exemple
utilises pour lire des images.



Oui et quel rapport avec les Boolean dont je parle?



Et le rapport avec les bits explicites, tu le vois, lui ?


J'ai pas dit le contraire. Le fait que ce soit une primitive montre même
que c'est une concession faite avec bas niveau.



Concession ? ca montre surtout qu'a un moment, faut bien implementer
les choses...

Je cite Smalltalk parce que la façon originale d'y représenter les
Booleans y est particulièrement élégante et parfaitement "objet". Si tu
ajoute là dessus les bloc-closures, on comprends assez vite que pour les
puristes des langages à objets, même un simple if/then/else, est
vraiment autre chose qu'un mot-clef pré-défini dans le langage.

(et heureusement, parce que ca permet d'avoir une implementation decente
de smalltalk avec du graphique qui tourne a une vitesse raisonnable.



Oui et c'est une concession au pragmatisme (parce que les puristes seuls
ne vont généralement pas loin).



Je pense que tu te plantes totalement vis-a-vis de la facon dont les
gens qui font du smalltalk voient ce genre de chose. D'une version a la
suivante de Squeak, par exemple, je vois le noyau reduire et les operations
se generaliser, pour reutiliser un maximum de code, mais je ne vois pas
de primitives disparaitre pour etre reimplementees avec le langage lui-meme.
Avatar
Samuel DEVULDER
Marc Espie a écrit :

Je pense que tu te plantes totalement vis-a-vis de la facon dont les
gens qui font du smalltalk voient ce genre de chose.



Tu peux penser ce que tu veux, mais figure toi que je bosse pour une
boite qui fait (entre autre) du Smalltalk.. et qui est capable de le
traduire en C. Je connais plutot bien les puristes des deux mondes et je
sais comment ils penses et ce comment ils voient la programmation dans
leur domaine et ce qui est de l'ordre de la concession ou des choses
naturelles dans leurs langages respectifs.

D'une version a la
suivante de Squeak, par exemple, je vois le noyau reduire et les operations
se generaliser, pour reutiliser un maximum de code, mais je ne vois pas
de primitives disparaitre pour etre reimplementees avec le langage lui-meme.



C'est très bien.. mais ca n'est que la squeak-side-story.

sam (pour parodier je dirais: Gnu is Not Unique ;-) )
Avatar
Marc Boyer
Le 13-06-2010, Samuel DEVULDER a écrit :
a écrit :
Tu passes du coq à l'âne. Que vient faire la POO dans les opérateurs
bitwise ? De plus, la POO n'est pas un langage ...



En fait, je me demandais si on pouvait manipuler des bits avec des
langages orientés objets?



Oui.. mais en héritage des langages de bas niveau. C'est jugé par les
puristes comme une erreur, car on peut avoir des langages a objets sans
aucune notion de bits explicites (cf Smalltalk où mêmes les booleens
sont des objets).



Et ils font comment les puristes pour décoder un en-tête IP ?
Ou pour échanger des entiers entre deux machines d'archi distinctes ?

La POO et les manipulation binaires sont quand même à deux opposés
de la programmation. Chacun sont domaine d'application. Mais il arrive
qu'on ai besoin des deux dans un même code.

Marc Boyer
--
En prenant aux 10% des francais les plus riches 12% de leurs revenus,
on pourrait doubler les revenus des 10% les plus pauvres.
http://www.inegalites.fr/spip.php?article1&id_mot0
Avatar
Marc Boyer
Le 12-06-2010, a écrit :
Bonjour,

Est-ce qu'on peut envisager d'apprendre le langage C sans connaître la
manipulation de bits et faire quelque chose avec ?



Oui, tout à fait. Les manipulations binaires ne sont utiles que
dans certains cas assez limités.
Ceci dit, les manipulations binaires, c'est quelques heures
de travail, pas plus (si on a le niveau math suffisant pour
comprendre ce qu'est une puissance).

Ou alors il faut
nécessairement apprendre d'autres langages (apprendre la POO me semble
indispensable pour une approche générale...).



Ça n'a pas grand chose à voir. Les manipulations binaires, c'est une
petite notion qui s'acquière en quelques heures. La POO, c'est un paradigme
dont les bases demandent déjà quelques dizaines d'heures, et dont
la pratique demande des mois et années d'expérience.
Il y a des bouquins entiers sur la POO. La manipulation binaire, ça
doit faire un chapitre dans les bouquins verbeux (j'exclue les flottants
auxquels tu ne pensais surement pas).

Marc Boyer
--
En prenant aux 10% des francais les plus riches 12% de leurs revenus,
on pourrait doubler les revenus des 10% les plus pauvres.
http://www.inegalites.fr/spip.php?article1&id_mot0
Avatar
Marc Boyer
Le 13-06-2010, a écrit :

En fait, je me dis que le C est devenu un standard du fait que les
principaux auteurs étaient salariés dans des entreprises assez
puissantes pour imposer ses standards (AT&T ou Bell) à une époque où
la croissance était à 2 chiffres..Peut-être je m'avance un peu sans
trop savoir mais les auteurs du K&R étaient salariés et leur ouvrage
appartient (les droits) à l'entreprise pour laquelle ils travaillaient
au moment ou ils l'ont écrit, non?



Non, s'il suffisait d'être une grosse entreprise pour imposer son
standard, seul les langages MS auraient passé les années 90.

C est devenu un standard parce qu'il était la meilleure/moins pire
réponse aux problèmes que se posaient l'industrie à un moment donné.
La compatibilité entre machines, dans le temps et avec la base
installée font qu'il reste incontournable, et imuable dans ses
qualités et ses défauts.

Je me demande entre autre si aujourd'hui, d'autres ne peuvent pas
imposer des standards (communauté Androîd supportée par Google...par
exemple) ? Mais c'est un autre sujet.



Tu as vu la guerre Java/C++/C# ?
Sun est mort, mais C# n'a pas gagné la guerre, loin de là.
Il faut une certaine "puissance de feu" pour faire émerger un
standard, mais ça n'est pas tout.

La programmation sur les appareils mobiles (tactiles et autres) avec
les outils disponibles peuvent-elles nécessiter des connaissances du
niveau de la manipulation de bits?



Oui et non.
Oui dans le sens où le codage/decodage de la voie, des signaux Wifi/GSM,
ça se traite au bit prêt.
Non dans le sens où ce travail est fait par celui qui batît la
plateforme, et que les développeurs d'applications hebergées
n'ont pas ce souci là.

Marc Boyer
--
En prenant aux 10% des francais les plus riches 12% de leurs revenus,
on pourrait doubler les revenus des 10% les plus pauvres.
http://www.inegalites.fr/spip.php?article1&id_mot0
Avatar
Samuel DEVULDER
Marc Boyer a écrit :
Le 13-06-2010, Samuel DEVULDER a écrit :
a écrit :
Tu passes du coq à l'âne. Que vient faire la POO dans les opérateurs
bitwise ? De plus, la POO n'est pas un langage ...


En fait, je me demandais si on pouvait manipuler des bits avec des
langages orientés objets?


Oui.. mais en héritage des langages de bas niveau. C'est jugé par les
puristes comme une erreur, car on peut avoir des langages a objets sans
aucune notion de bits explicites (cf Smalltalk où mêmes les booleens
sont des objets).



Et ils font comment les puristes pour décoder un en-tête IP ?



Ils font des concession avec le monde reel...

Ou pour échanger des entiers entre deux machines d'archi distinctes ?



.. et ils masquent ces concessions dans de belles classes qui masquent
les détails d'implémentation à ceux qui veulent les utiliser.

La POO et les manipulation binaires sont quand même à deux opposés
de la programmation. Chacun sont domaine d'application. Mais il arrive
qu'on ai besoin des deux dans un même code.



Tout à fait, mais pour les débutants en objet on ne leur fait pas jouer
avec la manip de bits directement, mais on leur fait travailler sur des
concepts de plus haut niveau.

Ici il n'est pas question de savoir si la manipulation binaire est utile
ou non. Elle l'est! Mais c'était de répondre à pascal qui se demandait
si c'était important en POO. La réponse est clairement non: on y fait
tout pour s'épargner les détailles scabreux de bas niveau.

Maintenant son pb d'origine étant de coder/debugger les drivers linux,
il n'a pas de choix: il devra se palucher les bitmasks à un moment donné
ou un autre. Le truc c'est qu'on arrive pas à savoir si il veut faire du
bas niveau ou du haut niveau au final.

sam.


Marc Boyer
Avatar
Antoine Leca
Merci de changer le titre lorsqu'on change de sujet (voire mieux, lancer
une autre discussion).

a écrit :
En fait, je me dis que le C est devenu un standard du fait que les
principaux auteurs étaient salariés dans des entreprises assez
puissantes pour imposer ses standards (AT&T ou Bell) à une époque où
la croissance était à 2 chiffres.



Et C# n'est pas devenu un standard, entre beaucoup d'autres...
Et Pascal et HTTP sont devenus des standards, venant l'un de
l'université et l'autre d'un centre de recherche, et les deux d'un pays
qui prônait à l'époque la croissance la plus réduite possible...


Peut-être je m'avance un peu sans
trop savoir mais les auteurs du K&R étaient salariés et leur ouvrage
appartient (les droits) à l'entreprise pour laquelle ils travaillaient
au moment ou ils l'ont écrit, non?



Je ne le pense pas. Mais tu peux poser la question, leurs dirigeants
sont à La Défense !
Dans tous les cas, cela ne concerne que les droits sur le livre.
Le langage en lui-même est autre chose, et ne me semble tomber sous le
coup de la législation sur la propriété industrielle qu'en tant que
Norme Internationale, dont le propriétaire est l'ISO, un autre Suisse.


Je me demande entre autre si aujourd'hui, d'autres ne peuvent pas
imposer des standards



Comme dit plus haut : personne n'impose les standards dans notre monde
actuel, industrialisé, communicant et démocratique ; certains le
regrettent (et d'autres les taxent en retour de dictateurs).
Tout au plus arrive-t-on à casser des standards existants.


Antoine
1 2 3 4 5