🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #5241

Re: een algoritme...

#5241
From: Roel Schroeven
Date: Fri, 16 May 2003 07:49
39 lines
3744 bytes
TRAX wrote:
> opgelost :)
> ik durf het bijna niet zeggen maar ik had mijn breakpoint een lijntje te
> vroeg gezet :(

Het overkomt de besten...

> zou je mij dat proces eens kunnen uitleggen hoe die tag gemaakt wordt?

Die tag is een int van 32 bit. Dat het een int is, daar trekken we ons 
niet veel van aan, wel dat we er 32 bits in kwijt kunnen.

'rij << 16' schuift alle bits in rij 16 posities naar links, en voegt 
rechts nulletjes toe. Daardoor komt het rijnummer in de hoogste 16 bits 
te staan, als de rij in 16 bits past (m.a.w. <= 65535). Anders zullen er 
een paar bits wegvallen.

'(rij << 16) | kolom' combineert dat middels een bitgewijze OR met de 
waarde van kolom, die nog in de laagste 16 bit staat (weerom ervan 
uitgaand dat ze in 16 bits past).

Het uitpakken is hetzelfde, maar andersom. 'Tag >> 16' schuift de 
hoogste 16 bits weer naar de laagste 16, en '& 0xffff' is een AND met 
een mask om zeker enkel die laagste 16 bits over te houden (* zie noot 
onderaan). Zo halen we de hoogste 16 bits er weer uit.
'Tag & 0xffff' doet hetzelfde, maar dan voor de laagste 16 bit.

(*) Als je op bit-niveau werkt, gebruik je eigenlijk beter unsigned ints 
i.p.v. gewone. Als je anders een right shift doet van een negatief 
getal, komen er links 1-tjes bij in plaats van nulletjes. Hier wordt dat 
probleem opgevangen door die mask.

Nog een opmerking: in plaats van 16 kan je ook een andere shift 
gebruiken, en dan kan je meer rijen maken ten koste van het aantal 
kolommen, of andersom. De masks moeten dan natuurlijk ook aangepast worden.

-- 
"Codito ergo sum"
Roel Schroeven
Technical Details
Message-ID: <mK0xa.4325$1u5.339@afrodite.telenet-ops.be>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-03!sn-xit-04!sn-xit-01!sn-xit-08!supernews.com!newsfeeds.sol.net!news-out.cwix.com!newsfeed.cwix.com!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!not-for-mail
References: <T%awa.698$1u5.156@afrodite.telenet-ops.be> <fXdwa.1083$1u5.154@afrodite.telenet-ops.be> <y%kwa.1270$1u5.216@afrodite.telenet-ops.be> <8nmwa.1335$1u5.157@afrodite.telenet-ops.be> <Iumwa.1342$1u5.172@afrodite.telenet-ops.be> <1rnwa.1395$1u5.221@afrodite.telenet-ops.be> <WXswa.12970$me2.1724304@amsnews02.chello.com> <S7twa.1963$1u5.278@afrodite.telenet-ops.be> <9gtwa.13139$me2.1757061@amsnews02.chello.com> <mQxwa.2396$1u5.372@afrodite.telenet-ops.be> <E6Iwa.3025$1u5.276@afrodite.telenet-ops.be> <TgJwa.3089$1u5.223@afrodite.telenet-ops.be> <qBJwa.3110$1u5.237@afrodite.telenet-ops.be> <WHJwa.3118$1u5.410@afrodite.telenet-ops.be> <kIKwa.3217$1u5.383@afrodite.telenet-ops.be> <iPMwa.3361$1u5.288@afrodite.telenet-ops.be> <h3Nwa.3375$1u5.326@afrodite.telenet-ops.be> <eONwa.3428$1u5.149@afrodite.telenet-ops.be> <T6Owa.3443$1u5.149@afrodite.telenet-ops.be> <H8Owa.3445$1u5.182@afrodite.telenet-ops.be> <xoPwa.3546$1u5.94@afrodite.telenet-ops.be>

Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit
X-Google-Thread: fcea4,dcf5f7295edf5117
X-Google-Attributes: gidfcea4,public
X-Google-ArrivalTime: 2003-05-16 00:52:05 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-03!sn-xit-04!sn-xit-01!sn-xit-08!supernews.com!newsfeeds.sol.net!news-out.cwix.com!newsfeed.cwix.com!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!not-for-mail
From: Roel Schroeven <j4nff5m02@sneakemail.com>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4b) Gecko/20030507
X-Accept-Language: nl-be, nl, en-us, en
MIME-Version: 1.0
Newsgroups: be.comp.programming
Subject: Re: een algoritme...
References: <T%awa.698$1u5.156@afrodite.telenet-ops.be> <fXdwa.1083$1u5.154@afrodite.telenet-ops.be> <y%kwa.1270$1u5.216@afrodite.telenet-ops.be> <8nmwa.1335$1u5.157@afrodite.telenet-ops.be> <Iumwa.1342$1u5.172@afrodite.telenet-ops.be> <1rnwa.1395$1u5.221@afrodite.telenet-ops.be> <WXswa.12970$me2.1724304@amsnews02.chello.com> <S7twa.1963$1u5.278@afrodite.telenet-ops.be> <9gtwa.13139$me2.1757061@amsnews02.chello.com> <mQxwa.2396$1u5.372@afrodite.telenet-ops.be> <E6Iwa.3025$1u5.276@afrodite.telenet-ops.be> <TgJwa.3089$1u5.223@afrodite.telenet-ops.be> <qBJwa.3110$1u5.237@afrodite.telenet-ops.be> <WHJwa.3118$1u5.410@afrodite.telenet-ops.be> <kIKwa.3217$1u5.383@afrodite.telenet-ops.be> <iPMwa.3361$1u5.288@afrodite.telenet-ops.be> <h3Nwa.3375$1u5.326@afrodite.telenet-ops.be> <eONwa.3428$1u5.149@afrodite.telenet-ops.be> <T6Owa.3443$1u5.149@afrodite.telenet-ops.be> <H8Owa.3445$1u5.182@afrodite.telenet-ops.be> <xoPwa.3546$1u5.94@afrodite.telenet-ops.be>
In-Reply-To: <xoPwa.3546$1u5.94@afrodite.telenet-ops.be>
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit
Lines: 40
Message-ID: <mK0xa.4325$1u5.339@afrodite.telenet-ops.be>
Date: Fri, 16 May 2003 07:49:38 GMT
NNTP-Posting-Host: 213.119.50.61
X-Complaints-To: abuse@telenet.be
X-Trace: afrodite.telenet-ops.be 1053071378 213.119.50.61 (Fri, 16 May 2003 09:49:38 MET DST)
NNTP-Posting-Date: Fri, 16 May 2003 09:49:38 MET DST
Organization: Telenet Internet