ein Int in ein Char konvertieren ABER in Binärdarstellung



  • Also
    ich habe ein
    Int code = 0b11111

    diesen binär code muss ich aber in einem Char haben
    also:
    char charcode = "111111"

    wie bringe ich sowas zu stande? 😡



  • also 0b11111 ist schonmal gar kein gültiges literal. das hast du also schonmal nicht im programmcode.

    und wenn du die bitfolge eh zur kompilierzeit kennt, dann schreib doch einfach:

    const char* charcode = "111111";
    

    wobei mir nicht bewusst wird, wofür man das brauchen sollte. wenn du zur laufzeit einen integer in binärer darstellung in einen string konvertieren willst, dann nutze einfach die bitweise-operatoren und push_back.


  • Mod

    also 0b11111 ist schonmal gar kein gültiges literal

    War schon früh eine GCC-Erweiterung. Seit C++14 ist es auch standardisiert.



  • std::string int_to_bin_string(int val) {
        char buffer[sizeof(int) * 8];
        char* bufferp = buffer;
        while(val > 0) {
            *bufferp = "01"[val & 1];
            val >>= 1;
            ++bufferp;
        }
    
        if(std::distance(buffer, bufferp) == 0) {
            return "0";
        }
        std::string result;
        result.reserve(std::distance(buffer, bufferp));
        std::reverse_copy(buffer, bufferp, std::back_inserter(result));
        return result;
    }
    

    So zb


Anmelden zum Antworten