|
автор: in_mysql (04.01.2007 в 15:42) |
|
| Каким образом можно перевести число из двоичной формы в десятичную? | |
|
|
|
|
|
|
|
для: in_mysql
(04.01.2007 в 15:42)
| | Можно воспользоваться следующей программой
#include <iostream>
using namespace std;
int main()
{
int number = 0;
int counter = 0;
cout << "Введите число ";
cin >> number;
char binary[80];
do
{
if(number & 1) binary[counter++] = '1';
else binary[counter++] = '0';
number = number >> 1;
} while(number);
// Завершаем строку
binary[counter++] = '\0';
// Выводим строку в обратном порядке
for(int i = strlen(binary); i; i--) cout << binary[i - 1];
cout << endl;
return 0;
} |
| |
|
|
|
|
|
|
|
для: in_mysql
(04.01.2007 в 15:42)
| | Ручками :) Что то вроде такого...
#include <iostream>
#include <string.h>
using namespace std;
int bin_to_dec(char * s)
{
int l = strlen(s);
int r = 0;
for(int i = 0; i < l; i++)
{
r <<= 1;
r += s[i] - 0x30;
}
return r;
}
void main(void)
{
char * s = "11111111";
cout << bin_to_dec(s);
} |
| |
|
|
|
|
|
|
|
для: in_mysql
(04.01.2007 в 15:42)
| | Стойте! Вам из какой в какую надо было? :) | |
|
|
|
|
|
|
|
для: Евгений Петров
(04.01.2007 в 19:48)
| | Обратно ещё проще. В 3-м параметре ф-ии _itoa указывается система счисления.
#include <iostream>
#include <stdlib.h>
using namespace std;
void main(void)
{
char * s = new char;
_itoa(255, s, 2);
cout << s;
} |
| |
|
|
|
|
автор: in_mysql (08.01.2007 в 03:03) |
|
|
для: Евгений Петров
(04.01.2007 в 19:52)
| | Спасибо, у вас самый компактный вариант из того, что мне встречался :) | |
|
|
|