69 tecken kort UTF-8-kodare i C

Per von Zweigbergk pvz at kth.se
Sat Jun 30 15:44:20 CEST 2007


30 jun 2007 kl. 14.30 skrev David Vuorio:

> Didrik Madheden wrote:
>> On 30/06/07, Per von Zweigbergk <pvz at pvz.pp.se> wrote:
>>> Jag slogs för någon timme eller två sedan av en tanke. En riktigt
>>> kort version av en kodare från ISO-8859-1 till UTF-8.
>>>
>>> main(c){for(;c=~getchar();putchar(~c))c&128?:putchar(c>>6^63,c| 
>>> =64);}
>> En sak jag inte fattar: Varför c|=64 med tilldelning? c|64 border väl
>> funka lika bra då c ändå skrivs över i nästa cykel?
>
> Andra parametern evalueras först.
>
> /David

Nja, första parametern evalueras först, iaf på mitt system. Om man  
har ett system där andra parametern evalueras först, skulle man få  
fel resultat, eftersom en vital bit ifrån c skulle kastas bort -- en  
bit som påverkar uttrycket c>>6^63 -- nämligen den minst signifikanta  
biten i det uttrycket.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.stacken.kth.se/pipermail/stacken/attachments/20070630/20f3601d/attachment.html


More information about the Stacken mailing list