Все, что я действительно знаю, это PHP, и я использовал функцию decbin
и т. Д. Это было довольно легко сделать. В этой программе на C++ я хочу сделать то же самое, просто простое число или строку, как бы я это сделал?Как преобразовать десятичную дробную в двоичную?
ответ
Простая функция может быть определена так, как это:
void binary(int decimal) {
int remainder;
if(decimal <= 1) {
std::cout << decimal;
return;
}
remainder = decimal % 2;
binary(decimal >> 1);
std::cout << remainder;
}
Хотя есть много других ресурсов в Интернете о том, как это сделать ..
Заметным вопрос эффективности этого здесь, поскольку вы можете больше, чем просто: Efficiently convert between Hex, Binary, and Decimal in C/C++
Если вы хотите его распечатать, просто используйте этот код here. Если вы хотите вернуть строку, вместо того, чтобы использовать cout
, добавьте вместо нее строку C++.
Вы можете использовать itoa
, если он доступен на вашем компиляторе. Просто запомните , это не стандарт, и если вам нужен стандартный метод, вам лучше использовать другие решения.
предлагает итерационный подход (миловать #defines (но я совершенно уверен, что они будут собраны в значение выражения), я не совсем помню, предопределенные макросы/константы C):
#define INT_ARCH 32
#define ARCH_SHIFTABLE (INT_ARCH - 1)
#define ARCH_MAX_INT 1 << ARCH_SHIFTABLE
void dec_to_bin(int decimal)
{
int shifter = ARCH_MAX_INT;
for(; shifter > 0; shifter >>= 1)
cout << (decimal & shifter);
}
вы можете сделать это нерекурсивно используя что-то вроде этого:
std::string Dec2Bin(int nValue, bool bReverse = false)
{
std::string sBin;
while(nValue != 0)
{
sBin += (nValue & 1) ? '1' : '0';
nValue >>= 1;
}
if(!bReverse)
std::reverse(sBin.begin(),sBin.end());
return sBin;
}
, конечно, это не слишком architucture дружелюбен, но он избегает COUT, просто упаковывают вы не с помощью консоли. он также выводится в любом порядке бит.
Возможно, добавьте последнюю строку с чем-то вроде 'return sBin.size()? sBin: «0» ', чтобы отобразить' 0'. – Tshepang
Как и @Necrolis, ответьте без необходимости в if, и разворот строки.
string decimalToBinary(int decimal) {
string binary;
while(decimal) {
binary.insert(0, 1, (decimal & 1) + '0');
decimal >>= 1;
}
return binary;
}
ли простой способ в C++
#include <iostream>
using namespace std;
int main()
{
long n, rem, binary=0, i=1;
cout<<"Enter a int: ";
cin>>n;
while(n != 0)
{
rem = n%2;
n = n/2;
binary= binary + (rem*i);
i = i*10;
}
cout<< "\nAns: "<<binary <<endl;
return 0;
}
- 1. Как преобразовать двоичную строку в десятичную?
- 2. Как преобразовать десятичную дробную в шестнадцатеричную с помощью Objective C?
- 3. Как преобразовать двоичную строку в десятичную строку в Java
- 4. Как преобразовать десятичную дробь в двоичную в Java?
- 5. Как преобразовать двоичную матрицу в десятичную матрицу в matlab?
- 6. Преобразование строки в двоичную и двоичную в десятичную в Python?
- 7. Как преобразовать десятичную в двоичную и форматировать ее определенным образом?
- 8. Как преобразовать строку в HEX или двоичную или десятичную цифру
- 9. Как преобразовать десятичную дробь в двоичную, используя pythons basic fuctions
- 10. Преобразование шестнадцатеричной в десятичную дробную часть в Lua
- 11. Как преобразовать строку в десятичную?
- 12. Как преобразовать строку в десятичную?
- 13. Как эффективно преобразовать мантиссы из десятичной в двоичную.
- 14. Как преобразовать двоичную дробь в шестнадцатеричную в Java?
- 15. Как преобразовать двоичный/денарный/шестнадцатеричный/восьмеричный в двоичную кодированную десятичную (BCD) в python
- 16. Как преобразовать десятичную дробь в двоичную с фиксированной длиной в sage
- 17. Как преобразовать десятичную обратную BCD?
- 18. преобразовать строку в десятичную («3942.000000000000»)
- 19. преобразовать экспоненциальной десятичную в питона
- 20. преобразовать в десятичную арабскими цифрами
- 21. как преобразовать двоичную строку в полиномиальную форму
- 22. Как преобразовать десятичной в двоичную и наоборот
- 23. как преобразовать матрицу значений в двоичную матрицу
- 24. Как преобразовать фотографию, сделанную камерой в двоичную.
- 25. Как преобразовать двоичную строку в байты [] array?
- 26. Как преобразовать строку ascii в двоичную?
- 27. как преобразовать класс android в двоичную последовательность
- 28. Как преобразовать XML-данные в двоичную версию?
- 29. Как преобразовать двоичную строку в массив int?
- 30. Как эффективно преобразовать BitSet в двоичную строку?
Спасибо за ссылку тоже –
@ Oni-кун, C++ имеет гораздо больше, чтобы предложить, если вы посмотрите на него, decbin не все, что отличных от этих решений. – Nullw0rm
Имя параметра 'int decimal' не имеет смысла. Числа не являются по сути десятичными, это просто цифры. (Фактически, они всегда хранятся в двоичной форме внутри.) – fredoverflow