/*------------------------------------------------------------------------------
| |
| this is the subrotine for schowing char to binary asci |
| it was written in 2004 by mtd |
| greeting to frans |
|-------------------------------------------------------------------------------|
| voor de sprong: |
| de volgende library: string.h |
| & |
| een asci buffer waar de bytes worden opgeslagen |
| met de naam |
| char BIN_CONVERTER_TO_ASCII_TEXT[1]; |
| voorbeeld: |
| |
| #include <string.h> |
| #include <stdio.h> |
| char BIN_CONVERTER_TO_ASCII_TEXT[39]; |
| |
|-------------------------------------------------------------------------------|
| spong bij: |
| BIN_CONVERTER_TO_ASCII(de waarde die converteerd worden (8 bits max) )
|
| |
| bij printen op beeld scherm gebruikt u simpel ( 32 bits max): |
| BIN_CONVERTER_TO_ASCII_PRINT_ALL(waarde); |
| |
| terug komst uit subrotine: |
| staat in BIN_CONVERTER_TO_ASCII_TEXT de binaire ascii text |
| |
\------------------------------------------------------------------------------*/
void BIN_CONVERTER_TO_ASCII(int BIN_CONVERTER_TO_ASCII_WAARDE)
{
//
// variables asci waardes voor de bin converter
//
char BIN_CONVERTER00[5]= "0000";
char BIN_CONVERTER01[5]= "0001";
char BIN_CONVERTER02[5]= "0010";
char BIN_CONVERTER03[5]= "0011";
char BIN_CONVERTER04[5]= "0100";
char BIN_CONVERTER05[5]= "0101";
char BIN_CONVERTER06[5]= "0110";
char BIN_CONVERTER07[5]= "0111";
char BIN_CONVERTER08[5]= "1000";
char BIN_CONVERTER09[5]= "1001";
char BIN_CONVERTER10[5]= "1010";
char BIN_CONVERTER11[5]= "1011";
char BIN_CONVERTER12[5]= "1100";
char BIN_CONVERTER13[5]= "1101";
char BIN_CONVERTER14[5]= "1110";
char BIN_CONVERTER15[5]= "1111";
//
// kijke wat de waarde is an de hoogste flag
// maak tevens een tussen buffer aan
//
int
BIN_CONVERTER_TO_ASCII_WAARDE_BUFFER_LOW,BIN_CONVERTER_TO_ASCII_WAARDE_BUFFER_HI;
//
// haal de laagste 4 bits op
//
BIN_CONVERTER_TO_ASCII_WAARDE_BUFFER_LOW = BIN_CONVERTER_TO_ASCII_WAARDE
&
15; //=$f0=240//
//
// haal de hoogste 4 bits op
//
BIN_CONVERTER_TO_ASCII_WAARDE_BUFFER_HI = BIN_CONVERTER_TO_ASCII_WAARDE &
240; //=$f0=240//
//
// roteer de hoogste 4 bits 4 plaatsen naar rechts
// daar door krijg ik een low waarde
//
BIN_CONVERTER_TO_ASCII_WAARDE_BUFFER_HI =
BIN_CONVERTER_TO_ASCII_WAARDE_BUFFER_HI >> 4;
//
// low binary
//
switch (BIN_CONVERTER_TO_ASCII_WAARDE_BUFFER_HI)
{
case 0: strcat (BIN_CONVERTER_TO_ASCII_TEXT,BIN_CONVERTER00);
break;
case 1: strcat (BIN_CONVERTER_TO_ASCII_TEXT,BIN_CONVERTER01);
break;
case 2: strcat (BIN_CONVERTER_TO_ASCII_TEXT,BIN_CONVERTER02);
break;
case 3: strcat (BIN_CONVERTER_TO_ASCII_TEXT,BIN_CONVERTER03);
break;
case 4: strcat (BIN_CONVERTER_TO_ASCII_TEXT,BIN_CONVERTER04);
break;
case 5: strcat (BIN_CONVERTER_TO_ASCII_TEXT,BIN_CONVERTER05);
break;
case 6: strcat (BIN_CONVERTER_TO_ASCII_TEXT,BIN_CONVERTER06);
break;
case 7: strcat (BIN_CONVERTER_TO_ASCII_TEXT,BIN_CONVERTER07);
break;
case 8: strcat (BIN_CONVERTER_TO_ASCII_TEXT,BIN_CONVERTER08);
break;
case 9: strcat (BIN_CONVERTER_TO_ASCII_TEXT,BIN_CONVERTER09);
break;
case 10: strcat (BIN_CONVERTER_TO_ASCII_TEXT,BIN_CONVERTER10);
break;
case 11: strcat (BIN_CONVERTER_TO_ASCII_TEXT,BIN_CONVERTER11);
break;
case 12: strcat (BIN_CONVERTER_TO_ASCII_TEXT,BIN_CONVERTER12);
break;
case 13: strcat (BIN_CONVERTER_TO_ASCII_TEXT,BIN_CONVERTER13);
break;
case 14: strcat (BIN_CONVERTER_TO_ASCII_TEXT,BIN_CONVERTER14);
break;
case 15: strcat (BIN_CONVERTER_TO_ASCII_TEXT,BIN_CONVERTER15);
break;
};
//
// low binary
//
switch (BIN_CONVERTER_TO_ASCII_WAARDE_BUFFER_LOW)
{
case 0: strcat (BIN_CONVERTER_TO_ASCII_TEXT,BIN_CONVERTER00);
break;
case 1: strcat (BIN_CONVERTER_TO_ASCII_TEXT,BIN_CONVERTER01);
break;
case 2: strcat (BIN_CONVERTER_TO_ASCII_TEXT,BIN_CONVERTER02);
break;
case 3: strcat (BIN_CONVERTER_TO_ASCII_TEXT,BIN_CONVERTER03);
break;
case 4: strcat (BIN_CONVERTER_TO_ASCII_TEXT,BIN_CONVERTER04);
break;
case 5: strcat (BIN_CONVERTER_TO_ASCII_TEXT,BIN_CONVERTER05);
break;
case 6: strcat (BIN_CONVERTER_TO_ASCII_TEXT,BIN_CONVERTER06);
break;
case 7: strcat (BIN_CONVERTER_TO_ASCII_TEXT,BIN_CONVERTER07);
break;
case 8: strcat (BIN_CONVERTER_TO_ASCII_TEXT,BIN_CONVERTER08);
break;
case 9: strcat (BIN_CONVERTER_TO_ASCII_TEXT,BIN_CONVERTER09);
break;
case 10: strcat (BIN_CONVERTER_TO_ASCII_TEXT,BIN_CONVERTER10);
break;
case 11: strcat (BIN_CONVERTER_TO_ASCII_TEXT,BIN_CONVERTER11);
break;
case 12: strcat (BIN_CONVERTER_TO_ASCII_TEXT,BIN_CONVERTER12);
break;
case 13: strcat (BIN_CONVERTER_TO_ASCII_TEXT,BIN_CONVERTER13);
break;
case 14: strcat (BIN_CONVERTER_TO_ASCII_TEXT,BIN_CONVERTER14);
break;
case 15: strcat (BIN_CONVERTER_TO_ASCII_TEXT,BIN_CONVERTER15);
break;
};
//
// zet er een puntje achter
//
strcat (BIN_CONVERTER_TO_ASCII_TEXT,".");
return;
}
void BIN_CONVERTER_TO_ASCII_PRINT_ALL(unsigned long int
BIN_CONVERTER_TO_ASCII_WAARDE2)
{
//
// string leeg maken
//
strcpy(BIN_CONVERTER_TO_ASCII_TEXT,"");
int BIN_CONVERTER_TO_ASCII_WAARDE=0;
char
BIN_CONVERTER_TO_ASCII_CHARR1,BIN_CONVERTER_TO_ASCII_CHARR2,BIN_CONVERTER_TO_ASCII_CHARR3,BIN_CONVERTER_TO_ASCII_CHARR4;
// printf (" HEX: UNSIGNED: DECIMAL: ASCII:
BINARY:\n");
//
//lokatie $FF000000 berekenen
//
BIN_CONVERTER_TO_ASCII_WAARDE=BIN_CONVERTER_TO_ASCII_WAARDE2&4278190080;
//
4278190080=$FF000000
BIN_CONVERTER_TO_ASCII_WAARDE=BIN_CONVERTER_TO_ASCII_WAARDE>>24;
BIN_CONVERTER_TO_ASCII_CHARR1=BIN_CONVERTER_TO_ASCII_WAARDE;
if (BIN_CONVERTER_TO_ASCII_CHARR1 <=20) BIN_CONVERTER_TO_ASCII_CHARR1=32;
BIN_CONVERTER_TO_ASCII(BIN_CONVERTER_TO_ASCII_WAARDE);
//
//lokatie $00FF0000 berekenen
//
BIN_CONVERTER_TO_ASCII_WAARDE=BIN_CONVERTER_TO_ASCII_WAARDE2&16711680; //
16711680=$00FF0000
BIN_CONVERTER_TO_ASCII_WAARDE=BIN_CONVERTER_TO_ASCII_WAARDE>>16;
BIN_CONVERTER_TO_ASCII_CHARR2=BIN_CONVERTER_TO_ASCII_WAARDE;
if (BIN_CONVERTER_TO_ASCII_CHARR2 <=20) BIN_CONVERTER_TO_ASCII_CHARR2=32;
BIN_CONVERTER_TO_ASCII(BIN_CONVERTER_TO_ASCII_WAARDE);
//
//lokatie $0000FF00 berekenen
//
BIN_CONVERTER_TO_ASCII_WAARDE=BIN_CONVERTER_TO_ASCII_WAARDE2&65280; //
65280=$0000FF00
BIN_CONVERTER_TO_ASCII_WAARDE=BIN_CONVERTER_TO_ASCII_WAARDE>>8;
BIN_CONVERTER_TO_ASCII_CHARR3=BIN_CONVERTER_TO_ASCII_WAARDE;
if (BIN_CONVERTER_TO_ASCII_CHARR3 <=20) BIN_CONVERTER_TO_ASCII_CHARR3=32;
BIN_CONVERTER_TO_ASCII(BIN_CONVERTER_TO_ASCII_WAARDE);
//
//lokatie $000000FF berekenen
//
BIN_CONVERTER_TO_ASCII_WAARDE=BIN_CONVERTER_TO_ASCII_WAARDE2&255; //
255=$000000FF
BIN_CONVERTER_TO_ASCII_CHARR4=BIN_CONVERTER_TO_ASCII_WAARDE;
if (BIN_CONVERTER_TO_ASCII_CHARR4 <=20) BIN_CONVERTER_TO_ASCII_CHARR4=32;
BIN_CONVERTER_TO_ASCII(BIN_CONVERTER_TO_ASCII_WAARDE);
//
// print de hele regel uit
//
printf ("%0.8X %0.10u %0.10d '%c%c%c%c' %s
\n",BIN_CONVERTER_TO_ASCII_WAARDE2,BIN_CONVERTER_TO_ASCII_WAARDE2,BIN_CONVERTER_TO_ASCII_WAARDE2,BIN_CONVERTER_TO_ASCII_CHARR1,BIN_CONVERTER_TO_ASCII_CHARR2,BIN_CONVERTER_TO_ASCII_CHARR3,BIN_CONVERTER_TO_ASCII_CHARR4,BIN_CONVERTER_TO_ASCII_TEXT);
return;
}
/*------------------------------------------------------------------------------\
| |
| end subrotine binary |
| |
\------------------------------------------------------------------------------*/
"Ramiro Barbosa, Jr." <ramiro_b@[EMAIL PROTECTED]
> schreef in bericht
news:9da59e3e.0410211817.7ab3e520@[EMAIL PROTECTED]
> All,
>
> Any ideas on how to convert the first 8 bytes of raw uninterpreted
> sequence of bytes from 'char array[64];' (populated with _binary_ data
> read from a socket), into a 'long id'?
>
> Thank you!
>
> -RB


|