🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fr.comp.lang.c
Article #15185

Re: rot13 [Was : Re: conjugaison et autres ...]

#15185
From: Emmanuel Delahaye
Date: Tue, 04 Oct 2005 13:27
96 lines
5949 bytes
Antoine Leca wrote on 04/10/05 :
> En <news:43411501$0$27446$8fcfb975@news.wanadoo.fr>, Harpo va escriure:
>> D'abord, qui c'est �ui l� encore le 'basic execution character set' ?
>
> Les caract�res juste suffisant pour programmer en C.
> En gros, � l'alphabet � ASCII, dont on exclut '$' '@' et '`' des caract�res
> graphiques, et dont on garde seulement '\0' (qui ne veut plus dire NUL),
> '\a' (BEL), '\t' (HT), '\f' (FF), '\v' (VT) et '\r' (CR) dans les caract�res
> de contr�le, et auquel on ajoute enfin '\n'.
>
>> Je croyais na�vement qu'un char �tait un integer comme un autre, un
>> peu petit pour son �ge, c'est tout. 129 ( 0x81 ) a le 'bit de gauche'
>> � 1, je pensais qu'il �tait n�gatif.
>
> En 16 bits, (unsigned)32769 aussi a le 'bit de gauche' � 1, il n'est pas
> n�gatif pour autant.
>
> La subtilit�, c'est que char peut �tre soit sign�, soit non sign�, suivant
> l'architecture sous-jacente. Sur le PDP-11 (qui avait pas mal d'instructions
> pour manipuler des entiers 8 bits sign�s), c'est signed. Sur la grande
> majorit� des autres machines de l'�poque), c'est unsigned, soit pour assurer
> la compatibilit� EBCDIC, soit parce qu c'est plus r�gulier au niveau du jeu
> d'instructions.
>
> Ensuite, sur le Vax c'est rest� signed, et de l� cela c'est propag� jusque
> dans la norme. Les compilateurs pour des architectures CISC (qui sont assez
> insensibles aux d�tails du jeu d'instructions) ont en g�n�ral une option
> permettant de choisir si char est sign� ou pas.
>
>> Pour m'�claircir les id�es, j'ai fait ce petit programme en C.
>> Le r�sultat a �t� conforme � mes attentes :
>> 129 = -127
>
> C> a
> 129 = 129
> C> gcc -v
> Reading specs from bin/../lib/gcc/mingw32/3.4.2/specs
> [...]
> Thread model: win32
> gcc version 3.4.2 (mingw-special)
>
> Et je n'ai pas compil� crois� pour l'AS/400, ni m�me avec une version
> sp�ciale de libc. Seulement
> C> gcc --unsigned-char -W -Wall uchar.c
>
>> Maintenant, veux-tu dire que si j'avais compil� sur un bon vieil IBM
>> pour qui ASCII est un mot de 5 lettres, j'aurais obtenu ce r�sultat
>> aberrant :
>> 129 = 129
>> ?
>> Parce que son 'basic execution character set' serait diff�rent ?
>
> D�pend de quel c�t� tu te places. Du point de vue du C, non, il n'est pas
> diff�rent, il se constitue aussi de '\0', '\n', '!', 'a' etc. �videmment,
> 'a' vaut 0x61 sur une machine et 0x81 sur l'autre. Mais si tu r�fl�chis un
> peu, ce n'est pas beaucoup plus diff�rent que la situation de '�', qui vaut
> 0xA4 ici, 0x20AC l�, 0x80 l� bas ou 0xD5 chez IBM. Enfin, chez IBM on trouve
> aussi 0x9F, et aussi 0X5A chez les Scandinaves.
>
>> Qui a pondu cette norme qui m'�nerve les nerfs ? C'est une atteinte
>> d�lib�r�e � la portabilit� !
>
> C'est une atteinte � TA vision de la portabilit� (qui doit ressembler � �
> cela marche chez moi et cela doit marcher partout �). Comme la libert� des
> uns s'arr�tent o� commencent celles des autres, la r�alit� est un _peu_ plus
> complexe.
>
>> Sans vouloir refaire le C ni m�me le reste du monde, je pense que tout
>> aurait �t� plus simple si tout avait �t� unsigned par d�faut.
>
> Non. Le prix � payer �tait trop important sur un PDP-11 (l'anc�tre duquel
> tout d�pend). Et c'est comme dans les histoires de machines � remonter le
> temps : si tu changes l'anc�tre, il n'y a plus de langage C. Du tout.
> En fait, c'est parce que Dennis Ritchie devait tergiverser avec les
> contraintes d'extensions de signe du PDP-11, et que par ailleurs sur EBCDIC
> (l'autre machine sur laquelle il d�veloppait) les char �tait n�cessairement
> non sign�s, que le C a pu � facilement � accomoder n'importe lequel des
> encodages qui sont venus par la suite (et simultan�ment), y compris les
> encodages multibytes (il n'y a gu�re que Unicode avec l'utilisation des
> octets � 0 qui pose r�ellement probl�me).
>
>> uchar est-il dans la norme ?
>
> Non, c'est un identificateur r�serv� au programmeur, et c'est tellement
> utilis� que ce n'est pas pr�t de changer ;-)
>
> Antoine



-- 
Emmanuel
The C-FAQ: http://www.eskimo.com/~scs/C-faq/faq.html
The C-library: http://www.dinkumware.com/refxc.html

"C is a sharp tool"
Technical Details
Message-ID: <mn.239f7d5a92f2102c.15512@YOURBRAnoos.fr>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news2.google.com!proxad.net!infeed-3.proxad.net!nnrp10-1.free.fr!not-for-mail
References: <1126342327.583568.21420@g43g2000cwa.googlegroups.com> <4329e5d4$0$7846$8fcfb975@news.wanadoo.fr> <dge4b6$fqa$1@reader1.imaginet.fr> <432ab809$0$1734$8fcfb975@news.wanadoo.fr> <mn.84b07d59016a857b.31483@laposte.net> <433f16ac$0$27406$8fcfb975@news.wanadoo.fr> <mn.10907d5a55119e84.15512@YOURBRAnoos.fr> <433f9cb1$0$7821$8fcfb975@news.wanadoo.fr> <mn.128c7d5aa5238de0.15512@YOURBRAnoos.fr> <43403203$0$5388$8fcfb975@news.wanadoo.fr> <43403d27$0$306$7a628cd7@news.club-internet.fr> <dhq3bs$dbc$1@reader1.imaginet.fr> <4340d2c9$0$27410$8fcfb975@news.wanadoo.fr> <4340ec30$0$303$7a628cd7@news.club-internet.fr> <43411501$0$27446$8fcfb975@news.wanadoo.fr> <dhtj72$9kd$1@shakotay.alphanet.ch>

Show Full Headers
Complete Article Headers
X-Google-Thread: f9822,b21b26167a936e28
X-Google-Attributes: gidf9822,public
X-Google-Language: FRENCH,ASCII
Path: arc1-ca.pugleaf.net!g2news1.google.com!news2.google.com!proxad.net!infeed-3.proxad.net!nnrp10-1.free.fr!not-for-mail
Subject: Re: rot13 [Was : Re: conjugaison et autres ...]
From: "Emmanuel Delahaye" <emdel@YOURBRAnoos.fr>
References: <1126342327.583568.21420@g43g2000cwa.googlegroups.com> <4329e5d4$0$7846$8fcfb975@news.wanadoo.fr> <dge4b6$fqa$1@reader1.imaginet.fr> <432ab809$0$1734$8fcfb975@news.wanadoo.fr> <mn.84b07d59016a857b.31483@laposte.net> <433f16ac$0$27406$8fcfb975@news.wanadoo.fr> <mn.10907d5a55119e84.15512@YOURBRAnoos.fr> <433f9cb1$0$7821$8fcfb975@news.wanadoo.fr> <mn.128c7d5aa5238de0.15512@YOURBRAnoos.fr> <43403203$0$5388$8fcfb975@news.wanadoo.fr> <43403d27$0$306$7a628cd7@news.club-internet.fr> <dhq3bs$dbc$1@reader1.imaginet.fr> <4340d2c9$0$27410$8fcfb975@news.wanadoo.fr> <4340ec30$0$303$7a628cd7@news.club-internet.fr> <43411501$0$27446$8fcfb975@news.wanadoo.fr> <dhtj72$9kd$1@shakotay.alphanet.ch>
Newsgroups: fr.comp.lang.c
Message-ID: <mn.239f7d5a92f2102c.15512@YOURBRAnoos.fr>
X-Newsreader: MesNews/1.04.00.00-fr
Date: Tue, 04 Oct 2005 15:27:04 +0200
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-15"; format=flowed
Content-Transfer-Encoding: 8bit
Lines: 98
Organization: Guest of ProXad - France
NNTP-Posting-Date: 04 Oct 2005 15:27:06 MEST
NNTP-Posting-Host: 81.65.109.202
X-Trace: 1128432426 nnrp10-1.free.fr 4325 81.65.109.202:25774
X-Complaints-To: abuse@proxad.net