На самом деле, скромно опираясь на предыдущий ответ - это может сработать лучше для преобразования a в b:
единственное отличие от предыдущего ответа состоит в том, что биты, уже установленные в b, не нужно устанавливать заново, поэтому не считайте их.
вычислить (a XOR b) И ~ b
считать установленные биты
сообщение исправлено согласно комментарию. Спасибо!