|
| C++ Builder Fra : Mogens Larsen |
Dato : 16-12-01 18:52 |
|
Jeg har lige et lille spørgsmål til følgende kodestump...
Buffer = Comport1->ReadByte;
If (Buffer = = X)
{
Et eller andet;
}
Hvis X er en binær værdi f.eks 10101010 hvordan angives det så...
Skriver jeg 0b10101010 melder den fejl. 0x10101010 virker, men er hvist ikke
en binær værdi.
| |
Martin Dyring (16-12-2001)
| Kommentar Fra : Martin Dyring |
Dato : 16-12-01 19:07 |
|
"Mogens Larsen" <mnla00@kom.auc.dk> wrote in message
news:9vin06$ltd$1@sunsite.dk...
> Hvis X er en binær værdi f.eks 10101010 hvordan angives det så...
>
> Skriver jeg 0b10101010 melder den fejl. 0x10101010 virker, men er hvist
ikke
> en binær værdi.
C understøtter så vidt jeg husker ikke angivelse i andet end oktal, decimal
og hexadecimal form..
Du kan evt. bruge Windows's indbyggede lommeregner til at konvertere fra
eks. binær til hex (som jeg vil tro de fleste foretrækker at se på, i det
mindste når vi snakker bit-pilleri).
--
Mvh,
Martin Dyring
| |
Soeren Sandmann (16-12-2001)
| Kommentar Fra : Soeren Sandmann |
Dato : 16-12-01 19:26 |
|
"Martin Dyring" <mda@image.dk> writes:
> Du kan evt. bruge Windows's indbyggede lommeregner til at konvertere fra
> eks. binær til hex (som jeg vil tro de fleste foretrækker at se på, i det
> mindste når vi snakker bit-pilleri).
En anden mulighed er en headerfil med konstanter:
enum {
B00000001 = 1,
B00000010 = 2,
B00000011 = 3,
...
};
Det er ikke svært at skrive et program som genererer sådan en
fil. Dette program som jeg skrev i tidernes morgen vil måske være
nyttigt:
#include <limits.h>
#include <stdio.h>
void
char_to_bin (unsigned char c)
{
int i;
unsigned int mask = 1 << 7;
printf ("B");
for (i = 0; i < CHAR_BIT; i++)
{
if (c & mask)
printf ("1");
else
printf ("0");
mask >>= 1;
}
printf (" = 0x%02x,\n", c);
}
int
main ()
{
int i;
for (i = 0; i < 256; ++i)
char_to_bin (i);
return 0;
}
| |
|
|