///////////////////////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--; } }
/////////////////////////////////////////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); }