бллин. гниловат хабр. только что в VS 2019 скомпилил. Ругнулся на
кучу "ошибок" в тексте. поправил. результат "-3" ну никак не -4. VS тупо не позволяет компилировать такой код. только так
(int)(-3/(int)3u*3)
пс: в книжке за 1990г черным по белому сказано: если один из операндов unsigned int то и второй также преобразуется к unsigned int