shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] hexadecimal / traffic control


From: Julio C. Neves
Subject: Re: [shell-script] hexadecimal / traffic control
Date: Sat, 29 Jul 2006 14:32:02 -0300

Outra solução seria um oneliner que converteria para binário suprimiria os
zeros e pegaria o tamanho da cadeia resultante.

[ ]s,
Julio

Em 29/07/06, Felipe Kellermann <address@hidden> escreveu:
>
> On Fri, 28 Jul 2006 11:39pm  -0300, Reinaldo Carvalho wrote:
>
> > parte (ffffff00), tenho que converter de hexadecimal para bits, na
> > verdade preciso saber quantos bits tem nesse hexadecimal.
> >
> > 80000000 = 1000 0000 0000 0000 0000 0000 0000 0000 = 1
> > c0000000 = 1100 0000 0000 0000 0000 0000 0000 0000 = 2
> > e0000000 = 1110 0000 0000 0000 0000 0000 0000 0000 = 3
>
> Fiz uma pequena função para converter um hexa para cidr.
>
>   % hexa_para_cidr 0x80000000
>   1
>   % hexa_para_cidr 0xc0000000
>   2
>   % hexa_para_cidr 0xe0000000
>   3
>   % hexa_para_cidr 0xffff8000
>   17
>
>
>
>   # Converte um valor hexadecimal de 32bits para CIDR.
>   # Felipe Kellermann
>
>   function hexa_para_cidr
>   {
>      local mascara=$1
>      local cidr=0
>      local base=0x80000000
>
>      shift
>      while [ $((mascara & base)) ]; do
>         cidr=$((cidr + 1))
>         base=$((base >> 1))
>      done
>
>      printf "%d\n" $cidr
>   }
>
>
> --
> Felipe Kellermann
>
> 
>



-- 
Abraços,
Julio
http://www.julioneves.com - Um livro sobre Bash completo e on-line
:wq


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]