Ответы пользователя по тегу ООП
  • Есть 4 байта в них записана информация как их прочитать сразу?

    rhaport
    @rhaport
    val = 0;
    for (int i = 0; i < 4; i++)
    {
        unsigned char ch;
        // считываем один char из потока
        inp.get(ch);
        // (ch & 0xFF) - паранойя, так как ch не может быть больше чем 0xFF, 
        // можно смело опустить и оставить только ch
        // каждый unsigned char может иметь значения от 0 до 0xFF
        // сдвигаем каждый прочитанный символ но (8*i) позиций, то есть при первом чтении не сдвигаем, так как
        // i = 0, потом на 8, потом на 16, потом на 24
        // 8 - это длина битового представления чара,
        // 0xFF - это как раз 8 единичек
        // затем всё склеивается операцией or.
        // В итоге получится нечто вроде 0xDDCCBBAA
        // если 0xAA был первый чар, 0xBB - второй и т.д.
        // сдвигая на 8, мы гарантируем, что биты одного чара, не испортят биты другого чара 
        val |= ((ch & 0xFF) << (8*i)); 
    }
    cout << dec << val << endl;
    Ответ написан
    Комментировать