Программирования на языке С

  • Автор темы isakz
  • Дата начала
I

isakz

#1
Требуется написать программу на языке Си или С++ . Программа должна переводить любое слово в двоичный код а затем обратно. Только начал изучать язык С, поэтому в этом деле ничего не смыслю. А программа нужна срочно. Хотел бы узнать с какой стороны начать. Заранее спасибо
 
I

isakz

#2
в том то и дела написать лучше самому. Мне бы понять в каком направление двигаться.
 
I

isakz

#3
таблица у меня имеется перевода букв в двоичный, что такое двоичный код я знаю. я так понимаю мне надо понять как переводятся буквы в дв. код. что то в инете я этого не нашел. может это забита изначально в комп, то есть перевод дв. кода в слова и наоборот. например буква "i" = 01101001.
 

DarkKnight

Well-known member
01.08.2010
653
0
#4
Ну если говоришь что сам напишишь, то хорошо... Вот тебе принцип в помощь
C++:
#include <iostream>

using namespace std;
union Sm //Обединение
{
char sim; //Символ 1байт = 8 (Бит)
struct //Структура 1байт = 8 (Бит) размерности равны и соблюдены
{
bool a:1; 
bool b:1;
bool c:1;
bool d:1;
bool e:1;
bool f:1;
bool g:1;
bool h:1;
} bit;
} code;

//Вывод на экран код символа
//Помним что в Intelе пишится память с права-на-лево
void PrintB(void)
{
cout<<code.bit.h<<code.bit.g<<code.bit.f<<code.bit.e<<code.bit.d<<code.bit.c<<code.bit.b<<code.bit.a;

}

void InputB(char str[8])
{
char buffer[2]; buffer[1]='\0';
buffer[0] = str[7];
code.bit.a = atoi(buffer);
buffer[0] = str[6];
code.bit.b = atoi(buffer);
buffer[0] = str[5];
code.bit.c = atoi(buffer);
buffer[0] = str[4];
code.bit.d = atoi(buffer);
buffer[0] = str[3];
code.bit.e = atoi(buffer);
buffer[0] = str[2];
code.bit.f = atoi(buffer);
buffer[0] = str[1];
code.bit.g = atoi(buffer);
buffer[0] = str[0];
code.bit.h = atoi(buffer);
}

void main(void)
{
code.sim = 'i';
PrintB();
cout<<endl;
InputB("01101001");
cout<<code.sim;
cout<<endl;
PrintB();
}
 
I

isakz

#6
C++:
// praci5.cpp: определяет точку входа для консольного приложения.
//

#include "stdafx.h"
#include <stdio.h>
#include <conio.h>

int main()
{
printf( "Vvod stroki: " );
char s[255];
scanf( "%[^\n]s" , s );

printf( "'%s' Preobrazovanie v binarny kod: " , s );
int i,c,power;

for( i=0; s[i]!='\0'; i++ )
{
c = s[i];
for( power=7; power+1; power-- )
if( c >= (1<<power) )
{
c -= (1<<power); 
printf("1");
}

else
printf("0");
} getch();

char bin = s[i];
int dec = 0;
printf("\nResult = %c", dec);
for(i = 0; bin != 0; ++i)

{
int j = bin % 10;
bin /= 10;
if(j)
dec += j << i;

}

getch();
}
Вроде все правильно. Ошибки не вылазиют, но результат не тот, что надо. При вводе текста преобразуется в двоичный а обратно в текст нет.
 
C

Chicago002

#7
Требуется написать программу, которая считает

30
∑ (a[sub]i[/sub]-b[sub]i[/sub])[sup]2[/sup]
i=1

где
a[sub]i[/sub]= i, если i нечетное
и a[sub]i[/sub]= i/2, в противном случае​
b[sub]i[/sub]= i[sup]2[/sup], если i нечетное
и b[sub]i[/sub]= i[sup]3[/sup], в противном случае​