Duvida Cruel

13. Re: Duvida Cruel

Tarcisio Silva
TarcisioSilva

(usa Ubuntu)

Enviado em 31/05/2017 - 15:13h

EnzoFerber escreveu:



Santo cristo! Muito bem sacado mesmo!

*

Quanto a duvida:

Você não precisa converter os valores em string. A sua descrição de "0 + 0 = 0, 0 + 1 = 0 e 1 + 1 = 1" é que ficou errada. Você sabe alguma coisa de lógica? Em lógica, usamos o operador '+' para a operação OU, que tem a seguinte saída: "0 + 0 = 0, 0 + 1 = 1, 1 + 1 = 1". Que não é seu caso.

O que você quer é fazer um programa que pegue um IP de host e retorne o IP identificador da rede a qual ele pertence. Para isso, você deve fazer um AND entre o IP do host e a máscara de rede. Portanto, você poderia simplesmente ler os inteiros (como já está fazendo), e então fazer um AND com eles.

Achou qual o operador AND bitwise do C?

Enzo Ferber
[]'s


$ indent -kr -i8 src.c

"(...)all right-thinking people know that (a) K&R are _right_ and (b) K&R are right."
- linux/Documentation/CodingStyle - TORVALDS, Linus.


a logica do projeto estou ciente nao estou conseguindo utilizar a linguagem toda essa parte de operação AND conheço a minha dificuldade esta em consegui fazer tal operação apos pegar o retorno do que foi digitado

Tarcisio Silva


  


14. Re: Duvida Cruel

Enzo de Brito Ferber
EnzoFerber

(usa FreeBSD)

Enviado em 31/05/2017 - 15:14h

TarcisioSilva escreveu:
a logica do projeto estou ciente nao estou conseguindo utilizar a linguagem toda essa parte de operação AND conheço a minha dificuldade esta em consegui fazer tal operação apos pegar o retorno do que foi digitado

Tarcisio Silva


Ok, entendi.

Então pesquise (sem sacanagem...) qual o operador "AND bitwise" de C e me responda qual é.

Assim poderemos prosseguir com seu problema...

Enzo Ferber
[]'s


$ indent -kr -i8 src.c

"(...)all right-thinking people know that (a) K&R are _right_ and (b) K&R are right."
- linux/Documentation/CodingStyle - TORVALDS, Linus.



15. Re: Duvida Cruel

Paulo
paulo1205

(usa Ubuntu)

Enviado em 31/05/2017 - 15:23h

Nem precisa de ir muito longe na pesquisa. Eu já disse isso algumas mensagens atrás.


16. Re: Duvida Cruel

Tarcisio Silva
TarcisioSilva

(usa Ubuntu)

Enviado em 31/05/2017 - 15:25h

EnzoFerber escreveu:

TarcisioSilva escreveu:
a logica do projeto estou ciente nao estou conseguindo utilizar a linguagem toda essa parte de operação AND conheço a minha dificuldade esta em consegui fazer tal operação apos pegar o retorno do que foi digitado

Tarcisio Silva


Ok, entendi.

Então pesquise (sem sacanagem...) qual o operador "AND bitwise" de C e me responda qual é.

Assim poderemos prosseguir com seu problema...

Enzo Ferber
[]'s


$ indent -kr -i8 src.c

"(...)all right-thinking people know that (a) K&R are _right_ and (b) K&R are right."
- linux/Documentation/CodingStyle - TORVALDS, Linus.


&
ja estou estudando sobre

Tarcisio Silva


17. Re: Duvida Cruel

Enzo de Brito Ferber
EnzoFerber

(usa FreeBSD)

Enviado em 31/05/2017 - 15:32h

TarcisioSilva escreveu:

&
ja estou estudando sobre

Tarcisio Silva


Excelente. Parabéns.

Portanto, você já sabe qual operador usar. Agora precisa saber como usá-lo.

Você já tem uma noção de como atribuições funcionam, certo?

Então você precisa pegar aquele pseudo-código que eu postei sobre como gerar o network ID e aplicá-lo a suas variáveis. Entendeu?

Traduza isso para C:


NetworkID = HostIP AND Netmask



Enzo Ferber
[]'s


$ indent -kr -i8 src.c

"(...)all right-thinking people know that (a) K&R are _right_ and (b) K&R are right."
- linux/Documentation/CodingStyle - TORVALDS, Linus.



18. Re: Duvida Cruel

Tarcisio Silva
TarcisioSilva

(usa Ubuntu)

Enviado em 31/05/2017 - 17:08h

Agradeço a todos fiz meio numa gambiarra mas consegui fazer obrigado


#include <stdio.h>
#include <stdlib.h>

int main()
{
//VARIAVEIS DO IP
int octeto1, octeto2, octeto3, octeto4;
int vetorIp[4];
//VARIAVEIS DA MASCARA
int mascara1, mascara2, mascara3, mascara4;
int vetorMascara[4];
//VARIAVEIS PARA AND
int and1,and2,and3,and4;
printf("#--------------------------------# \n");
printf("# CALCULADORA DE REDES # \n");
printf("#--------------------------------# \n");
//PRIMEIRO OCTETO
printf("Digite a PRIMEIRA parte do IP \n");
scanf("%i",&octeto1);
vetorIp[3] = octeto1;
//SEGUNDO OCTETO
printf("Digite a SEGUNDA parte do IP \n");
scanf("%i",&octeto2);
vetorIp[2] = octeto2;
//TERCEIRO OCTETO
printf("Digite a TERCEIRA parte do IP \n");
scanf("%i",&octeto3);
vetorIp[1] = octeto3;
//QUARTO OCTETO
printf("Digite a QUARTA parte do IP \n");
scanf("%i",&octeto4);
vetorIp[0] = octeto4;

system("cls");
printf("IP: %i.%i.%i.%i \n",vetorIp[3],vetorIp[2],vetorIp[1],vetorIp[0]);

//PRIMEIRO OCTETO MASCARA
printf("Digite a PRIMEIRA parte do MASCARA \n");
scanf("%i",&mascara1);
vetorMascara[3] = mascara1;
//SEGUNDA OCTETO MASCARA
printf("Digite a SEGUNDA parte do MASCARA \n");
scanf("%i",&mascara2);
vetorMascara[2] = mascara2;
//TERCEIRA OCTETO MASCARA
printf("Digite a TERCEIRA parte do MASCARA \n");
scanf("%i",&mascara3);
vetorMascara[1] = mascara3;
//PRIMEIRO OCTETO MASCARA
printf("Digite a QUARTA parte do MASCARA \n");
scanf("%i",&mascara4);
vetorMascara[0] = mascara4;
system("cls");
printf("IP: %i.%i.%i.%i \n ",vetorIp[3],vetorIp[2],vetorIp[1],vetorIp[0]);
printf("MASCARA: %i.%i.%i.%i \n ",vetorMascara[3],vetorMascara[2],vetorMascara[1],vetorMascara[0]);

and1 = vetorIp[3] & vetorMascara[3];
and2 = vetorIp[2] & vetorMascara[2];
and3 = vetorIp[1] & vetorMascara[1];
and4 = vetorIp[0] & vetorMascara[0];

printf("\n \n O IP RESULTANTE EH %i.%i.%i.%i ",and1,and2,and3,and4);

// printf("o OCTETO 01 e %i e o 02 e %i e 03 e %i e o 04 e %i \n", vetorIp[3],vetorIp[2], vetorIp[1], vetorIp[0]);
//printf("o OCTETO da MASCARA 01 e %i e o 02 e %i e 03 e %i e o 04 e %i \n", vetorMascara[3],vetorMascara[2], vetorMascara[1], vetorMascara[0]);
system("pause");
return 0;
}

A PARTE COMENTADA USEI PRA TESTE.
Obrigado,
Tarcisio Silva



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts