• Сложное задание на собеседовании

    @Slko
    C++/C#/Python Developer
    Вопрос немножко некорректен. 32-битность здесь большой роли не играет (важно только, чтобы архитектура не была 8-битной, где длина типа int может быть равна длине типа char, но всё равно это тоже некорректно, т.к. размеры типов не зависят от разрядности архитектуры, надо было указывать разрядность типа int), роль играет порядок байт.
    Если little-endian (интеловский порядок), то в c помещается наименьший значащий байт числа, т.е. это эквивалентно x % 256.
    Если big-endian, то в c помещается наибольший значащий байт числа, т.е. это эквивалентно x >> 24 (для 32-битной архитектуры).
    Соответственно, для little-endian эта операция над числом 1 вернёт 1, для big-endian - 0.
    Двойной знак вопроса использовался в C (где нет типа bool) для нормализации значения (!!x эквивалентно x > 0 ? 1 : 0).
    В C++ ! возвращает bool, а результат двойного применения отрицания это, по сути, преобразование типа исходного значения к bool (!!x эквивалентно (bool)x).
    В любом случае, суть последнего выражения - возврат true/1, если архитектура little-endian, а иначе - false/0.
    То есть назвать эту функцию можно было IsLittleEndian().
    Ответ написан
    6 комментариев
  • Странное поведение массивов в Си

    ntkt
    @ntkt
    Потомственный рыцарь клавиатуры и паяльника
    Массив как переменная в C — это псевдоним адреса в памяти, по которому лежит его первый элемент.
    Массива ни в машинном коде, ни в памяти, строго говоря, не существует. Существует только его «содержимое» — его элементы.
    При обращении к элементу массива действия производятся машиной прямо над его содержимым по вычисленному адресу.
    Самого массива — не существует.
    Всякий раз, когда в С Вы работаете с массивом — компилятор использует или указатель на первый элемент массива (например, когда Вы передаете массив в функцию), или адрес первого элемента массива, а машина далее с этим работает.

    Указатель в C — это переменная, содержащая адрес в памяти.
    Указатель в машинном коде и памяти — существует. Он имеет значение — число размером с разрядность машины, а значение числа — это адрес в памяти.
    Указатель как число — может быть передан в регистрах, лежать на стеке, и т.д.
    При обращении к байту/слову/двойному слову/… по смещению через указатель, в машинном коде указатель разыменовывается (в явном виде берется его значение=адрес) т.е. в машинном коде происходят несколько другие действия, чем в случае для массива.

    Если хотите понять полностью — откройте рядом книжку по ассемблеру, компилируйте Ваши примеры с выводом промежуточного ассемблерного кода (или смотрите в дизассемблер), и аккуратно сравнивайте по шагам.

    Вот, кстати, приличное описание различий на английском:
    eli.thegreenplace.net/2009/10/21/are-pointers-and-arrays-equivalent-in-c/
    Ответ написан
    Комментировать
  • Версия Windows Phone

    VenomBlood
    @VenomBlood
    Если у вас есть девелоперский аккаунт — то достаточно скачать приложение Preview for Developers — и получить девелоперскую версию обновления. А стоковая версия пока доступна не для всех телефонов и не для всех операторов.

    Насколько я помню — есть какая-то акция, по которой можно сделать девелоперский аккаунт под одно устройство бесплатно. Погуглите на wpcentral.

    PS У меня сейчас 8.0.10512.142, похоже 10501.127 — уже не последний апдейт.
    Ответ написан
    Комментировать
  • FirstVDS запрашивает скан паспорта?

    DVORYAN
    @DVORYAN
    Разработка и управление проектами
    Сотрудники их поддержки выполняют тупую процедуру, по сути они им конечно же не нужны, но в правилах написано что надо. Тоже самое требовали и с меня, только в другой конторе, помог только личный визит.
    Ответ написан
    Комментировать
  • Как обезопасить управление сервером?

    @Lamaster Автор вопроса
    Как вариант можно держать сервер в кладовке и подключаться напрямую.
    Ответ написан
    1 комментарий
  • Как обезопасить управление сервером?

    @m-haritonov
    Можно ещё устроиться в правительство или внедрить к ним своего агента.
    Ответ написан
    Комментировать
  • Разработка мобильных приложений под Andriod и IOS?

    @sphaerion
    Ответ написан
    Комментировать
  • Разработка мобильных приложений под Andriod и IOS?

    @kxyu
    Ответ написан
    Комментировать
  • Разработка виртуальной машины?

    darkrain
    @darkrain
    Самое лучшее — это читать исходники существующих вируталок. ИМХО

    Но я не понимаю зачем это Вам.
    Ответ написан
    1 комментарий
  • Hetzner и выставленые счета за сервер которым не пользовался?

    rakot
    @rakot
    Вы взяли в аренду физическую железку(она устаревает, занимает место в дата центре, кушает электричество), вам её предоставили, что вы с ней делаете или не делаете ни кого не волнует. Нужно заплатить и отказаться от аренды.
    Ответ написан
    1 комментарий
  • Прерываниями по таймерам Arduino MEGA?

    Ocelot
    @Ocelot
    void setup()
    {
    //------ Timer0 ----------
    TCCR0A = (1<<WGM01);   // Режим CTC (сброс по совпадению)
    TCCR0B = (1<<CS00);    // Тактирование от CLK.
                           // Если нужен предделитель :
    // TCCR0B = (1<<CS01);           // CLK/8
    // TCCR0B = (1<<CS00)|(1<<CS01); // CLK/64
    // TCCR0B = (1<<CS02);           // CLK/256
    // TCCR0B = (1<<CS00)|(1<<CS02); // CLK/1024
    
    OCR0A = 123;            // Верхняя граница счета. Диапазон от 0 до 255.
                            // Частота прерываний будет = Fclk/(N*(1+OCR0A)) 
                            // где N - коэф. предделителя (1, 8, 64, 256 или 1024)
    TIMSK0 = (1<<OCIE0A);   // Разрешить прерывание по совпадению
    
    //------ Timer1 ----------
    TCCR1B = (1<<WGM12);    // Режим CTC (сброс по совпадению)
    TCCR1B |= (1<<CS10);    // Тактирование от CLK.
                            // Если нужен предделитель :
    // TCCR1B |= (1<<CS11);           // CLK/8
    // TCCR1B |= (1<<CS10)|(1<<CS11); // CLK/64
    // TCCR1B |= (1<<CS12);           // CLK/256
    // TCCR1B |= (1<<CS10)|(1<<CS12); // CLK/1024
    
    OCR1A = 2678;           // Верхняя граница счета. Диапазон от 0 до 65535.
                            // Частота прерываний будет = Fclk/(N*(1+OCR1A)) 
                            // где N - коэф. предделителя (1, 8, 64, 256 или 1024)
    TIMSK1 = (1<<OCIE1A);   // Разрешить прерывание по совпадению
    
    //------ Timer2 ----------
    TCCR2A = (1<<WGM21);    // Режим CTC (сброс по совпадению)
    TCCR2B = (1<<CS20);     // Тактирование от CLK.
                            // Если нужен предделитель :
    // TCCR2B = (1<<CS21);                     // CLK/8
    // TCCR2B = (1<<CS20)|(1<<CS21);           // CLK/32
    // TCCR2B = (1<<CS22);                     // CLK/64
    // TCCR2B = (1<<CS20)|(1<<CS22);           // CLK/128
    // TCCR2B = (1<<CS21)|(1<<CS22);           // CLK/256
    // TCCR2B = (1<<CS20)|(1<<CS21)|(1<<CS22); // CLK/1024
    
    OCR2A = 234;            // Верхняя граница счета. Диапазон от 0 до 255.
                            // Частота прерываний будет = Fclk/(N*(1+OCR2A)) 
                            // где N - коэф. предделителя (1, 8, 32, 64, 128, 256 или 1024)
    TIMSK2 = (1<<OCIE2A);   // Разрешить прерывание по совпадению
    
    sei ();                 // Глобально разрешить прерывания
    }
    
    ISR (TIMER0_COMPA_vect)
    {
        // Обработчик прерывания таймера 0
    }
    
    ISR (TIMER1_COMPA_vect)
    {
        // Обработчик прерывания таймера 1
    }
    
    ISR (TIMER2_COMPA_vect)
    {
        // Обработчик прерывания таймера 2
    }
    


    Вместо тега CODE тег SOURCE используй, юный падаван.
    Ответ написан
    Комментировать
  • Своя домашняя серверная стойка?

    Дома серверная стойка?! А спать как будете, она же будет гудеть как средних размеров самолет.

    Дедикэйтед — наше все, и дешевле выйдет, с учетом амортизации оборудования. На поиграться в самый раз.
    Ответ написан
    5 комментариев
  • Unlock SIM, самостоятельно

    opium
    @opium
    Просто люблю качественно работать
    Обычно разлочки покупают у самого оператора, стоит не так дорого если все условия по контракту выполнены.
    Звонишь оператору и покупаешь или на сайте у него покупаешь.
    Ответ написан
    Комментировать
  • Греется MacBook Pro?

    @crazyASD
    Как ни издевался над своим, больше 75С прогреть его не удавалось.
    То что он греется, это нормально, корпус MBP является одновременно его радиатором.
    Ответ написан
    Комментировать
  • Рейтинг за плюсы/минусы в комментариях

    TomasHuk
    @TomasHuk
    Тайна рейтинга/хабрасилы скрыта за семью печатями, насколько мне известно. Вот выдержка из помощи:
    Секреты её подсчёта хабраредакции открыли пришельцы из созвездия Андромеды (до их прилёта даже хабраредакция не знала, как она рассчитывается). Время от времени пришельцы возвращаются и меняют принципы подсчёта, что может влиять на величину рейтинга отдельно взятых пользователей.
    Вот так.
    Ответ написан
    2 комментария
  • Google.play: «Не поддерживается на Вашем устройстве»?

    @elgordo
    Единственная причина почему появляется это сообщение — значит в требованиях приложения есть фичи, которые отсутствуют в вашем устройстве. Например, GPS приёмник, акселерометр, доступ в интернет итд итп. Либо, версия Андроид.

    Возможно, каким-то образом исказились данные в вашей учётной записи. Можно попробовать создать новую учётку в Google и добавить её в ваше устройство. Затем войти через неё в Google Play (на компьютере) и попробовать отправить желаемое приложение на своё устройство.

    Где и как прописаны все эти параметры и чем они задаются, мне так и не удалось узнать. У меня «самодельный» CarPC, там устройство на Андроиде в которое добавлен внешний GPS через USB. Как я ни бился, как ни правил прошивку, мне так и не удалось убедить Google Play, что в моём устройстве появился GPS приёмник. Ни Яндекс.Карты ни Google.Navigation не показываются мне в Google Play, хотя если эти программы установить в виде APK, они прекрасно работают. Хотя, Google.Navigation исчезает после перезагрузки, остаётся только Google.Maps.

    Вообще, свойства устройства прописаны в build.prop. Но его редактирование так ни к чему и не привело.
    Ответ написан
    1 комментарий
  • Кому нужен Palm Zire 72s?

    RedOctoberCZ
    @RedOctoberCZ
    Лучше сделайте по нему обзор, многие бы, наверняка, с удовольствием почитали :)
    Ответ написан
    2 комментария