Frage

Auf der Grundlage der folgenden einfachen Programm die bitweise Verschiebung nach links Betreiber nur für 32 Bit arbeitet. Ist es wahr?

#include <iostream>
#include <stdlib.h>

using namespace std;


    int main(void)
    {
        long long currentTrafficTypeValueDec;
        int input;
        cout << "Enter input:" << endl;
        cin >> input;
        currentTrafficTypeValueDec = 1 << (input - 1); 
        cout << currentTrafficTypeValueDec << endl;
        cout << (1 << (input - 1)) << endl;

        return 0;

    }

Die Ausgabe des Programms:

Enter input:
30
536870912
536870912

Enter input:
62
536870912
536870912

Wie kann ich produzieren 64-Bit-Masken?

War es hilfreich?

Lösung

Jetzt Eingang eine lange, lange zu, und die Verwendung 1LL- << (Eingang - 1LL-). Hier Ihre Verschiebung wird berechnet auf 32 Bit und 64 Bit umgewandelt, wenn in currentTrafficTypeValueDec gespeichert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top