Пример #1
0
///////////////////////Converts string to binary
char * convert_string_to_binary(char *plain_text)
{
int i,j,k;i=j=k=0;
int plain_length;

//Converting to Hexadecimal form of the entered
plain_length=string_length(plain_text);
printf("Length of Plain Text=%d\n",plain_length);
char temp_convert[2];
char hex[(plain_length*2)+15+1];       //extra 15 for padding   //+1for null character
int hex_length;

for(i=0;i<plain_length;i++)
{
//printf("%c->%x\n",plain_text[i],plain_text[i]);
sprintf(temp_convert,"%x",plain_text[i]);
//printf("\nhex=%s",temp_convert);
j=0;
while(temp_convert[j]!='\0')
{hex[k]=temp_convert[j];
j++;k++;}
}
hex[k]='\0';
hex_length=string_length(hex);

//printf("hex_length=%d\nk=%d",hex_length,k);

while(hex_length%16!=0)
{
hex[hex_length]='0';
hex_length++;
}

//printf("hex_length=%d\n",hex_length);

hex[hex_length]='\0';
printf("\nHexadecimal Form of Entered Plain_text(after padding).\n");
puts(hex);
printf("Length of Hexadecimal Form=%d\n",hex_length);

char binary[(plain_length*2*4)+15*4+1];            //extra 15*4 for padding and +1 for null character
char temp_binary[4];

//Now Converting to binary
i=0;k=0;
while(hex[i]!='\0')
{sprintf(temp_binary,"%s",assign_binary(hex[i]));
//printf("%s",binary);
j=0;
while(temp_binary[j]!='\0')
/////////////*******KAPIL GAUTAM*********************////
j++;k++;}
i++;
}
//---------------------------------------------------------------------------------------
// Merges symbols described by binary byte stream into existing symbol table.
//             [See as_binary() for byte stream composition.]
// Arg         binary_pp - Pointer to address to fill and increment.  Its size *must* be
//             large enough to fit all the binary data.  Use the get_binary_length()
//             method to determine the size needed prior to passing binary_pp to this
//             method.
// See:        as_binary(), assign_binary(), ASymbol::table_from_binary()
// Author(s):   Conan Reis
void ASymbolTable::merge_binary(const void ** binary_pp)
  {
  uint32_t init_length = m_sym_refs.get_length();

  //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  // If table is empty, don't do any special merge code
  if (init_length == 0u)
    {
    assign_binary(binary_pp);

    return;
    }


  //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  // Merge in symbols from binary

  // 4 bytes - number of symbols
  uint32_t length = A_BYTE_STREAM_UI32_INC(binary_pp);

  // Assume that there will be no overlap
  m_sym_refs.ensure_size(init_length + length);


  //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  // Repeating in symbol id order

  uint32_t sym_id;
  uint32_t str_len;

  while (length)
    {
    // 4 bytes - symbol id
    sym_id = A_BYTE_STREAM_UI32_INC(binary_pp);

    // 1 byte  - length of string
    str_len = A_BYTE_STREAM_UI8_INC(binary_pp);

    // n bytes - string
    symbol_reference(sym_id, (const char *)*binary_pp, str_len, ATerm_short);
    (*(uint8_t **)binary_pp) += str_len;

    length--;
    }
  }
Пример #3
0
/////////////////////////////////////////Converts hexadecimal to binary
char *convert_hex_to_binary(char *hex_text){
int hex_length=string_length(hex_text);
char binary[(hex_length*4)+15*4+1];            //extra 15*4 for padding and +1 for null character
char temp_binary[4];

//Now Converting to binary
int i=0,k=0;
while(hex_text[i]!='\0')
{sprintf(temp_binary,"%s",assign_binary(hex_text[i]));
//printf("%s",binary);
int j=0;
while(temp_binary[j]!='\0')
{binary[k]=temp_binary[j];
j++;k++;}
i++;
}
binary[k]='\0';
int binary_length=string_length(binary);
printf("\nBinary Form of above Hexadecimal value.\n");
puts(binary);
printf("Length of Binary Form=%d\n",binary_length);
char *binary2=binary;
return binary2;
}
 SkProjectInfo(const void ** binary_pp) { assign_binary(binary_pp); }