Talk About Network

Google


Register and Login
Nick
Password
Register create new account Sign up is FREE and you can post replies, new topics, bookmark posts and more!
Recover lost password


Programming > C++ Leda > Re: Converting ...
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 2 of 2 Topic 168 of 212
Post > Topic >>

Re: Converting from binary to long

by "mtd" <INFO@[EMAIL PROTECTED] > Oct 24, 2004 at 07:58 PM

/*------------------------------------------------------------------------------
|                    |
|   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
 




 2 Posts in Topic:
Converting from binary to long
ramiro_b@[EMAIL PROTECTED  2004-10-21 19:17:54 
Re: Converting from binary to long
"mtd" <INFO@  2004-10-24 19:58:44 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
tan12V112 Sat Jul 26 2:53:23 CDT 2008.