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 <[EMAIL PROTECTED]> 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]
---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
aviso.
---------------------------------------------------------------------
Sair da lista: [EMAIL PROTECTED]
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil
Links do Yahoo! Grupos
<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/shell-script/
<*> Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]
<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html