Как использовать мой вывод для другого уравнения? - PullRequest
0 голосов
/ 19 марта 2019

так что у меня есть проблема, я не могу ее решить, и я буду рад, если кто-нибудь сможет мне помочь с моим кодом. Поэтому я преобразую байт в бит, используя функции INPUT и OUTPUT, и моя проблема в том, что я не могу найти способ автоматически использовать результат (выход) для вычисления его также в двоичном виде. Поэтому, если я хочу преобразовать 50 B в биты, в результате я получу 400, и эти 400 бит (numbit) я хочу, чтобы они также отображались как двоичные. Это мой код:

#include<iostream>
#include<conio.h>
using namespace std;

main()
{

int numB, numbit;   
int arr [100], i = 0,j;


//INPUT
cout<<"Please Enter the number of Bytes:";
cin>>numB;
cout<<"\n";

//Formula bytes into bits
numbit = numB * 8;

//OUTPUT
cout<<"Is equal to the number of bits:"<<numbit;
cout<<"\n";


    while (numbit>0) 
    {
        arr [i] = numbit%2;
        i++;
        numbit=numbit/2;
    }
    cout<<"Binary number is: ";
    for (j= i-1; j>=0; j--)
    {
        cout<< arr[j];

return 0;

system("Pause");
}
}

1 Ответ

1 голос
/ 19 марта 2019

Обновление: BONUS-Round теперь и со знаковыми, и без знака числами (имейте в виду, что подписанное представление зависит от реализации, то есть от компилятора, а также от порядкового номера, операционной системы, одинаковой для длины без знака)

#include <iostream>
#include <bitset>
#include <cstdint>

int main()
{
    {
        unsigned unsigned_number{};
        std::cout << "Please Enter an unsigned:";

        std::cin >> unsigned_number;
        std::bitset<CHAR_BIT * sizeof(unsigned)> bits{unsigned_number};

        std::cout << "\nIs equal to the number of bits:" << bits << "\n";
    }
    {
        int32_t signed_number{};
        std::cout << "Please enter a signed:";

        std::cin >> signed_number;

        std::cout << "\nIs equal to the number of bits:";
        for (int i = 0; i < 4; ++i) {
            auto byte = reinterpret_cast<uint8_t*> (&signed_number) + i;
            std::bitset<8> bits{*byte};
            std::cout << bits;
        }
        std::cout << "\n";
    }
}
...