[elektro] bináris konstans
Acs Gabor
agabor at electrodesign.hu
Thu Aug 7 22:23:09 CEST 2008
Hát igen, így meg lehet hekkelni a dolgot, csak rácsodálkoztam, hogy a
legújabb fordítóból kifelejtették (amit még az assembler is tud)
Gábor
----- Original Message -----
From: "Papp Zoltán" <zombi at c2.hu>
To: <elektro at tesla.hu>
Sent: Thursday, August 07, 2008 9:38 PM
Subject: Re: [elektro] bináris konstans
2008.08.07. 20:11:42 dátumon Nemeth Tibor <neti at starkingnet.hu> írta:
> Acs Gabor wrote:
>
>> Sziasztok!
>>
>> Létezik, hogy az MPLAB C30-ban lehetett bináris konstans formátumot
>> megadni, a C32-ben meg nem? A C30 user manualban benne van, a C32-ben
>> nincs. Ha jól tudom, ez nem része az ANSI C-nek, de azért mikrovezérlős
>> fordítókba be szokták tenni. Vagy még ennyire az elején tart a C32, és
>> majd egyszer bekerül? Minden ismert formátumot próbáltam, nem veszi be.
>
> Hali!
>
> Ezek szerint fordítóból is 10 féle van, amelyik ismeri a bináris
> számokat és amelyik nem. :-)
>
> Üdv.
> Németh Tibor
>
Én egy ilyet szoktam betenni pl. 'IAR C for AVR' forráskódba (ő sem ismeri
alapból a bináris konstansokat):
#define _binary_convert_(b)
((b%10?1:0)+((b/10)%10?2:0)+((b/100)%10?4:0)+((b/1000)%10?8:0)+((b/10000)%10?16:0)+((b/100000)%10?32:0)+((b/1000000)%10?64:0)+((b/10000000)%10?128:0))
#define bin8(b) _binary_convert_((unsigned long)(b##.0)) //ha a bin. szám
0-val kezdődik, akkor oktálisnak veszi a preproc, a tizedespont
visszaalakítja decimálissá
Használata:
a=bin8(10100011);
b=bin8(00001111);
c=bin8(110);
d=bin8(1);
stb...
van még egy kiegészítés, 16/32 bites cuccokra, bájtonként vesszővel
szeparálva, az átláthatóság miatt:
#define bin16(h,l) (bin8(h)*256UL+bin8(l))
#define bin32(hh,hl,lh,ll) (bin16(hh,hl)*65536UL+bin16(lh,ll))
x=bin16(10101010,01010101);
stb...
Üdv
--
Papp Zoltán
OneWay Electronics Kft
Hangszerviz
szkájpi: oneway[aláhúzás]papp[aláhúzás]zoltan
-----------------------------------------
elektro[-flame|-etc]
_____________ NOD32 3301 (20080727) Információ _____________
Az üzenetet a NOD32 antivirus system megvizsgálta.
http://www.nod32.hu
More information about the Elektro
mailing list