Как я переворачиваю биты ord ('a') - PullRequest
0 голосов
/ 01 апреля 2020

Как мне перевернуть биты ord ('a')? Я попробовал это, и это выглядит правильно, но я хотел бы, чтобы эксперты включили. Примечание: Это текст ascii 'a'.

#! /usr/bin/env perl

use warnings;
use strict;

printf "0x%07b\n", ord('a');
printf "0x%07b\n", (~ord('a')) & (0x7f);

exit(0);

1 Ответ

1 голос
/ 02 апреля 2020

~ действительно является оператором побитового отрицания. Perl целые числа имеют 32- или 64-битный размер в зависимости от вашей сборки Perl, поэтому вы находите побитовое отрицание числа, возвращаемого ord('a') (0x61). Вы продолжаете использовать побитовый оператор AND, чтобы очистить все, кроме 7 младших разрядов этих 32 / 64.

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