1. Си / Говнокод #9809

    +130

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    int i,j;
    	char alph[]="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    	//Подстановка по таблице 1
    	int S_there[26][8]={{1,0,0,1,1,0,0,1},{1,0,0,0,1,0,0,0},{1,0,1,0,1,0,1,0},{0,0,1,1,0,0,1,1},{1,1,1,0,0,0,0,1},
    {1,0,0,0,0,1,1,1},{1,1,1,1,1,1,1,1},{1,1,0,1,0,0,1,0},{0,1,1,1,1,0,0,0},{1,1,0,0,0,0,1,1},{1,0,1,0,0,1,0,1},{0,1,0,0,1,0,1,1},
    {0,0,0,1,1,1,1,0},{0,1,0,1,0,1,0,1},{1,1,0,0,1,1,0,0},{0,0,0,1,0,0,0,1},{1,1,0,1,1,1,0,1},{1,0,1,1,0,1,0,0},{0,0,1,0,1,1,0,1},
    {0,0,0,0,0,0,0,0},{0,1,1,0,0,1,1,0},{0,1,0,0,0,1,0,0},{1,1,1,1,0,0,0,0},{0,0,1,1,1,1,0,0},{0,1,1,0,1,0,0,1},{0,0,1,0,0,0,1,0}};
    	
    	char str[]="THIISATESTFILEFORCHECKINGCYPHERMODULE";
    	int len=strlen(str);
        	int num[len];//массив с порядковыми номерами
    	int vector[len][8];//массив с ОТ, переведённым в двоичные вектора длины 8
    
    	for (i=0; i< len; i++)//Присваиваем каждой букве порядковый номер (а=0,b=1 и т.д.)
    	{
    		num[i]=((strchr(alph, str[i])-alph)% 26 + 0x01);
    		num[i]--;
    	}
    
    	for (i=0; i<len; i++)//Меняем букву на двоичный вектор длины 8 согласно порядковому номеру
    	{
    		int number=num[i];//счётчик текста
    		for (j=0; j<8; j++)
    		{
    			vector[i][j]=S_there[number][j];
    		}
    	}
    	for (i=0; i<len; i++)//Вывод на экран ОТ
    	{
    		for (j=0; j<8; j++)
    		{
    			printf("%u",vector[i][j]);
    		}
    		printf(" %c\n",str[i]);
    	}

    Нашёл в своей очень старой лабе...Нужно было буквы на входе преобразовать в двоичные вектора (например, а=10011001, b=10001000 и т.д.) ну и дальше ковыряться с этими векторами...почему я категорически не захотел тогда использовать case - хз :)))

    Запостил: Pecho, 29 Марта 2012

    Комментарии (3) RSS

    Добавить комментарий