Страницы

Поиск по вопросам

пятница, 27 декабря 2019 г.

Перевод из десятичного числа в двоичное

#cpp


Как перевести десятичное число в двоичное и наоборот? Язык C++.    


Ответы

Ответ 1



Стандартный способ - использование std::bitset. int i = 5; std::bitset<16> bitset = i; // 'to_string' вернет строку std::string формата '000...0111' std::cout << "Binary : " << bitset.to_string, std::allocator >() << std::endl; Обратный способ тоже очевиден: std::bitset<16> bitset("101011");

Ответ 2



Последовательно записываете остатки от деления на два, потом переворачиваете получившуюся строку. 13/2 = 6; 1 6/2 = 3; 0 3/2 = 1; 1 1/2 = 0; 1 Ответ: 1101. Удобнее всего это делать в цикле while. Обратно - не сложнее. В цикле for на каждой итерации к ответу прибавляете 2^i (два в степени итератора), если число порядков равно 1 или ничего не прибавляете, если число порядков равно 0. Начинать надо с конца: 1101: i=0: 1 => 2^0 = 1; SUM = 1; i=1: 0 => SUM = 1+0 = 1; i=2: 1 => 2^2 = 4; SUM = 1+4 = 5; i=3: 1 => 2^3 = 8; SUM = 5+8 = 13;

Ответ 3



void setBinNumber(int Number){ char tmp; //0 or 1 for next adding to string binNumber_ string binNumber_; //string to return while(Number){ tmp = '0' + Number % 2; //cout<<"tmp="<

Ответ 5



void dec2bin(void) { int count, cnt = 0; long int inp_numb; long unsigned int res; cout << " Enter Dec number: "; cin >> inp_numb; cout << endl; for(count = 63;count >= 0; count--) { res = (long unsigned int)(inp_numb >> count) & 1; printf("%llu", res); cnt+=1; if(cnt == 4) { printf(" "); cnt = 0; } } }

Комментариев нет:

Отправить комментарий