наверно что-то вроде:
int main() {
int a;
int n;
int c = 0;
int b[n];
/* ввод числа и количества знаков в числе */
fscanf(stdin, "%d %d", &a, &n);
for(i = 0; i < n; i++) {
b = a%2;
a = a/2;
}
for(i = 0; i < n; i++) {
c = c*10 + b[n - i];
}
fprintf(stdout, "%d\n", c);
return 0;
}
только для целых.. . и к тому же надо, наверняка, устранить это мою фигню с n...
Другие языки программирования и технологии
аааа сессия горит!!! помогите написать на си(не с++): перевод числа в двоичную систему
int X;
char buf[sizeof(int) * 8 + 1];
memset(buf, 0, sizeof(buf));
char *p = &buf[sizeof(buf) - 1];
do
{
*--p = (X % 2) ? '1' : '0';
} while (X /=2);
printf("%s\n", p);
char buf[sizeof(int) * 8 + 1];
memset(buf, 0, sizeof(buf));
char *p = &buf[sizeof(buf) - 1];
do
{
*--p = (X % 2) ? '1' : '0';
} while (X /=2);
printf("%s\n", p);
#include <iostream>
#include <string>
using std::cin;
using std::cout;
using std::endl;
using std::string;
class Binary
{
int dec;
string bin;
public:
Binary() : dec(0)
{ }
Binary(int n) : dec(n)
{ }
void dec2bin() {
for(int n = dec; n != 0; n >>= 1)
bin += (n & 1) ? "1" : "0";
}
void display() {
string::reverse_iterator rit;
for(rit = bin.rbegin(); rit < bin.rend(); rit++)
cout << *rit;
}
};
int main()
{
int p;
cout << "vvedi chislo: ";
cin >> p;
Binary bcls(p);
bcls.dec2bin();
bcls.display();
cout << endl;
return 0;
}
#include <string>
using std::cin;
using std::cout;
using std::endl;
using std::string;
class Binary
{
int dec;
string bin;
public:
Binary() : dec(0)
{ }
Binary(int n) : dec(n)
{ }
void dec2bin() {
for(int n = dec; n != 0; n >>= 1)
bin += (n & 1) ? "1" : "0";
}
void display() {
string::reverse_iterator rit;
for(rit = bin.rbegin(); rit < bin.rend(); rit++)
cout << *rit;
}
};
int main()
{
int p;
cout << "vvedi chislo: ";
cin >> p;
Binary bcls(p);
bcls.dec2bin();
bcls.display();
cout << endl;
return 0;
}
Си пока не изучал, но читать его могу, "устранить фигню с n" можно простым while циклом, в нем должно быть a<>0(дело в том что a=a/2 это целочисленное деление и на последнем шаге а становится нулем) , затем в строке b = a%2; должно быть b[k]=a%2; и естественно в тело цикла нужно поместить k++
Ну и напоследок вместо for(i = 0; i < n; i++) правильнее написать for(i = k; i <= 0; i--) так пропадает необходимость в разности b[n-i]
Ну и напоследок вместо for(i = 0; i < n; i++) правильнее написать for(i = k; i <= 0; i--) так пропадает необходимость в разности b[n-i]
Похожие вопросы
- я должен написать прогу на ассемблере для перевода числа из восьмеричной системы в десятичную
- перевод чисел в двоичную,восьмеричную системы счисления
- Помогите написать программу перевода чисел из двоичного формата в десятичный на языке C#
- Как в с++ сложить два числа в двоичной системе? Алгоритм сложения двух чисел в двоичной системе! в с++!!
- Как в Паскале написать прогу для перевода чисел из двоичной в шестьнадцатиричную.Длина кода 64 бит.(64 цифры в вводимом
- сложение двоичного и четверичного числа в двоичной системе
- Если парень в 11 классе смог написать программу по переводу чисел из одной системы счисления в другую, то ему смело
- Как перевести число из двоичной системы счисления в восьмеричную в Ассемблер (tasm) Программа должна быть простой!
- Как перевести дробное десятичное число в двоичную систему? по шагам пожалуйста 194,5?
- Алгоритмы перевода чисел из одной системы счисления в другую, арифметика в различных системах счисления