|
From: | Alfredo Casanova |
Subject: | Re: [shell-script] Re: Operação Bitwise em Bash |
Date: | Wed, 16 Oct 2019 22:15:39 -0300 |
O bash considera números iniciando com 0 como na base octal:$ echo $(( 01010 & 01010 ))
520Se não começar com 0, considerará na base decimal:$ echo $(( 1010 & 1010 ))
1010Você pode indicar a base explicitamente:$ echo $(( 8#1010 & 8#1010 ))
520$ echo $(( 10#01010 & 10#01010 ))
1010Portanto, se quer que seja considerada a base binária, indique-a:$ echo $(( 2#00001010 & 2#00001010 ))
10$ echo $(( 2#1010 & 2#1010 ))
10Aliás, a base hexadecimal também tem sua sintaxe específica:$ echo $(( 0x01010 & 0x01010 ))
4112
$ echo $(( 16#01010 & 16#01010 ))
4112Observe que o resultado é dado na base decimal. Se quiser o resultado na mesma base de entrada, pode convertê-lo. Aqui tem algumas sugestões de procedimento:$ dec=844
$ printf '%x\n' $dec # para hexadecimal
34c
$ printf '%X\n' $dec
34C
$ printf '%o\n' $dec # para octal
1514
$ bc <<< "obase=2;$dec" # para binario
1101001100 $ dec=844$ bc <<< "obase=21;$dec" # para base 21 -> QUALQUER BASE
01 19 04Att,Em qua, 16 de out de 2019 às 19:25, Alfredo Casanova address@hidden [shell-script] <address@hidden> escreveu:Pelo visto ele está fazendo bitwise comparando 1.100 com 1.010.Como fugir disso?Em qua, 16 de out de 2019 19:07, Alfredo Casanova <address@hidden> escreveu:Galera, to fazendo um script aqui pra detectar se uma sub-rede menos abrangente está compreendida dentro de outra mais abrangente (exemplo: saber se a rede 10.100.100.128/25 está dentro da rede 10.100.100.0/24)E aí no meio das operacoes de bitwise me peguei com um erro que nao consigo explicar:$ echo $(( 11111111 & 11111111))
11111111
$ echo $(( 11111111 & 11111110))
11111110Essas duas operações estão com comportamento adequadoPorém:
$ echo $(( 00001010 & 00001010 ))
520
$ echo $(( 00001010 & 00001100 ))
512eu não faço ideia do q está acontecendo nesses casos.
Alguém ilumina?--[]'s
Alfredo Tristão Casanova .͘.
Linux User #228230
tel: +55 61 9655 9619
--(o_ @arkanon (Twitter) __o
//\ address@hidden _`\<,
V_/_ www.lsd.org.br (_)/(_)
---------------------------------
[Prev in Thread] Current Thread [Next in Thread]
- Operação Bitwise em Bash, Alfredo Casanova, 2019/10/16
- Re: Operação Bitwise em Bash, Alfredo Casanova, 2019/10/16
- Re: [shell-script] Re: Operação Bitwise em Bash, Arkanon, 2019/10/16
- Re: [shell-script] Re: Operação Bitwise em Bash, Alfredo Casanova <=
- Re: [shell-script] Re: Operação Bitwise em Bash, Julio C. Neves, 2019/10/17
- Re: [shell-script] Re: Operação Bitwise em Bash, Alfredo Casanova, 2019/10/17
- Re: [shell-script] Re: Operação Bitwise em Bash, Thomaz de Oliveira dos Reis, 2019/10/17
- Re: [shell-script] Re: Operação Bitwise em Bash, Alfredo Casanova, 2019/10/17
- Re: [shell-script] Re: Operação Bitwise em Bash, Julio C. Neves, 2019/10/18
- Re: [shell-script] Re: Operação Bitwise em Bash, Alfredo Casanova, 2019/10/18
- Re: [shell-script] Re: Operação Bitwise em Bash, Julio C. Neves, 2019/10/18
- Re: [shell-script] Re: Operação Bitwise em Bash, Alfredo Casanova, 2019/10/21
- Re: [shell-script] Re: Operação Bitwise em Bash, Julio C. Neves, 2019/10/21
- Re: [shell-script] Re: Operação Bitwise em Bash, Alfredo Casanova, 2019/10/21
- Prev by Date: Re: [shell-script] Re: Operação Bitwise em Bash
- Next by Date: Re: [shell-script] Operação Bitwise em Bash
- Previous by thread: Re: [shell-script] Re: Operação Bitwise em Bash
- Next by thread: Re: [shell-script] Re: Operação Bitwise em Bash
- Index(es):