|
From: | Alfredo Casanova |
Subject: | Re: [shell-script] Re: Operação Bitwise em Bash |
Date: | Thu, 17 Oct 2019 10:49:25 -0300 |
Arkanon!!!!!! Que bom tê-lo de volta na lista!!! Nos conte como anda o LSD, pois tem tudo a ver com Shell.A ideia era te cumprimentar, mas só para não sair do escopo da lista e já que vc falou em bc e [io]base, vou mostrar uma coisa, que por não ser muito conhecida, alguns pensam ser um erro do utilitário:$ bc <<< "ibase=8; obase=16; 10+10"
12
$ bc <<< "obase=8; ibase=16; 10+10"
40Isso ocorreu pq na 1a linha primeiro declaramos a input base como 8 e qdo declaramos a 2a como 16 ele já entendeu que esse 16 era na base 8, ou seja 14.Conclusão: qdo for declarar a duas bases, declare 1o a de saída.Abraços,Julio» Não tem tempo para fazer um curso presencial?» Na sua cidade não tem nenhum bom curso de Linux?» Em outubro abriremos uma semana de inscrições» para uma nova turma. Veja mais detalhes em:Também damos treinamento em sua empresaem qualquer cidade, com certificado e nota fiscal.Em qua, 16 de out de 2019 às 19:52, Arkanon address@hidden [shell-script] <address@hidden> escreveu: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 (_)/(_)
-----------------------------------[]'s
Alfredo Tristão Casanova .͘.
Linux User #228230
tel: +55 61 9655 9619
[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, 2019/10/16
- 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 <=
- 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
- Re: [shell-script] Re: Operação Bitwise em Bash, Arkanon, 2019/10/19
Re: [shell-script] Operação Bitwise em Bash, Julio C. Neves, 2019/10/17
- Prev by Date: Re: [shell-script] Operação Bitwise em Bash
- Next by Date: Re: [shell-script] Re: 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):