При вводе символа выдать его двоичный код и код, полученный перестановкой битов в байте - C (СИ)
Формулировка задачи:
Добрый вечер)
Помогите, пожалуйста. Есть программа, которая при вводе символа должна выдать его двоичный код и код, полученный перестановкой битов в байте (первый - с последним, второй - предпоследний...) и производит запись в файл. Но при вызове, функция перевода в двоичное немного не работает Помогите найти ошибку
Вот код:
#include<stdio.h> #include<conio.h> #include<locale.h> #include<stdlib.h> #include<math.h> #define N 10 int dvoich(unsigned int s); int main() { FILE *tfile; char s[N]; int i=0, mas[8]; setlocale(LC_ALL, "Russian"); tfile=fopen("filefor.txt","w"); if (tfile==NULL) { printf("Не удалось открыть файл"); _getch(); exit (1); } printf("Введите 10 символов: \n"); scanf("%s", &s); for (i=0; i<N; i++) { mas[i]=dvoich((unsigned int)s[i]); printf("\n%d\n", mas[i]); } for(i = 0; s[i]; i++) { s[i] = ((s[i] >> 7) & 1) | (s[i] << 7) | ((s[i] >> 5) & 2) | ((s[i] << 5) & 64) | ((s[i] >> 3) & 4) | ((s[i] << 3) & 32) | ((s[i] >> 1) & 8) | ((s[i] << 1) & 16);} printf("\nНовый символ: '%s'\n, binary code: %d\n", s, dvoich((unsigned int) s)); fprintf(tfile,"Finish Number: %d", s); fclose(tfile); _getch(); return 0; } int dvoich (unsigned int s) { int i, a, b=0, mas_b[8]; for (i=0; s>0; i++) { a=s%2; s=(s-a)/2; mas_b[8-i]=a; } for(i=0; i<8; i++) printf("%d", mas_b[i]); _getch(); return *mas_b; }
Решение задачи: «При вводе символа выдать его двоичный код и код, полученный перестановкой битов в байте»
textual
Листинг программы
mas_b[8-1-i]=a;
Объяснение кода листинга программы
Код представлен в виде одного предложения и выполняет следующие действия:
- Присваивает переменной
a
значение, полученное в результате перестановки битов в байте, затем записывает это значение в массивmas_b
с индексом, равным 8 минус 1 минус значение переменнойi
. Пример: Если значение переменнойi
равно 3, то будет выполнено следующее действие: mas_b[8-1-3]=a; В результате, в массивеmas_b
с индексом 4 будет храниться значение переменнойa
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д