Эффективный способ суммировать все битовые значения переменной в Фортране - PullRequest
2 голосов
/ 16 июня 2019

Скажем, у меня есть целочисленная переменная a с битовым представлением 101010, мне нужно сложить все битовые значения 1, 0 вместе, что в этом случае 3. Есть ли более эффективный способ сделать, чем этот наивный код

sum = 0
do i=0, bit_size(a) - 1
    sum = sum + ibits(a, i, 1)
end do

1 Ответ

2 голосов
/ 16 июня 2019

С https://gcc.gnu.org/onlinedocs/gfortran/POPCNT.html:

Описание:

POPCNT(I) returns the number of bits set (’1’ bits) in the binary representation of I.

Стандарт:

Fortran 2008 and later

Класс:

Elemental function

Синтаксис:

RESULT = POPCNT(I)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...