Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- unsigned char *MakeBV(char str[], int *size){
- if(str == NULL) return 0;
- int bits = 0;
- while(str[bits] > 13) bits++;
- bits--;
- int mem = bits/8 + 1;
- *size = bits;
- unsigned char *vek = NULL;
- vek = (unsigned char*) malloc(sizeof(unsigned char)*mem);
- for(int k = 0; k < mem; k++) vek[k] = 0;
- int pos = 0, n = 0;
- unsigned char mask = 1;
- while(bits - pos >= 7){
- for(int k = 7; k >= 0; k--){
- if(str[pos+k] != '0'){
- mask = mask << (7-k);
- vek[n] = vek[n] | mask;
- mask = 1;
- }
- }
- pos = pos + 8;
- n++;
- }
- for(int k = 0; k < bits-pos+1; k++){
- if(str[pos+k] != '0'){
- mask = mask << (7-k);
- vek[n] = vek[n] | mask;
- mask = 1;
- }
- }
- return vek;
- }
- char *ConvertVektor(unsigned long vek[], int bits){
- if(vek == NULL) return 0;
- char *res = NULL;
- res = (char*) malloc(sizeof(char)*(bits+2));
- int mem = bits/8+1;
- int AmOfNul = 8 - (bits % 7);
- if(res == NULL) return 0;
- res[bits+1] = 13;
- for(int k = 0; k <= bits; k++) res[k] = 48;
- unsigned long mask = 1;
- /*for(int k = size - 1; k >= 0; k--){
- if((vek & (mask << (size-k-1))) > 0){
- res[k] = 49;
- }
- } */
- for(int k = 0; k < mem-1; k++){
- }
- return res;
- }
- int main(void) {
- char Str[] = "111";
- int len = 0;
- unsigned char *V = MakeBV(Str, &len);
- for(int k = 0; k < len; k++)
- {
- char *Vek1 = ConvertVektor(V[k], 8);
- for(int k = 0; k < 8; k++)
- printf("%c", Vek1[k]);
- }
- printf("\n");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment