В C ++, как и в большинстве языков программирования, вы можете вернуть только одно значение. Чтобы «вернуть» два значения, обычная практика C / C ++ - возвращать одно и передавать указатель на объект и изменять этот объект через указатель (mask
в данном случае).
Объекту, на который указывает mask
, будет назначена битовая маска с точно установленным битом. Для этого нужно принять шестнадцатеричное значение 0x80 (1000 0000 в двоичной форме) и сдвинуть его вправо от 0 до 7 шагов. Точное количество шагов определяется x
, то есть компьютером, использующим некоторую логику для конкретного приложения.
Возвращаемым значением является x / 8
.
Вы можете увидеть подпрограмму как подпрограмму деления, которая возвращает x/8
и остаток (например, x по модулю 8 , но выражается в виде битовой маски, а не целочисленного значения).