Ir para conteúdo
Fórum Script Brasil

Diogo Fonseca

Membros
  • Total de itens

    5
  • Registro em

  • Última visita

Sobre Diogo Fonseca

Últimos Visitantes

O bloco dos últimos visitantes está desativado e não está sendo visualizado por outros usuários.

Diogo Fonseca's Achievements

0

Reputação

  1. Havia umas partes que estavam mal mas deu para entender a lógica ficando assim no final o que voce acha? #include <stdio.h> unsigned int findsaw(int value); int main(){ int number = 0xEAEA476B; printf("%d\n", findsaw(number)); return 0; } unsigned int findsaw(int value1) { int last; int count, bigger; int idx, biggerIdx; unsigned value = value1; last = value & 01; count = 1; bigger = 1; idx = 0; biggerIdx = 0; for (value1 >>= 1; value != 0; value >>= 1){ if (last != (value & 01)) ++count; else { if(count > bigger){ bigger = count; biggerIdx = idx; } count = 1; } last = value & 01; ++idx; } if(count > bigger){ bigger = count; biggerIdx = idx; } return biggerIdx-bigger; } Obrigado desde já :)
  2. O Muito obrigado pela ajuda Valeu :)
  3. Ola pessoal, primeiro obrigado a quem responder. Estou com duvidas neste exercicio e não consigo chegar a resposta. O Exercicio é o seguinte: Escreva a função float_with_int_cmp, que compara o valor da parte inteira de fvalue com o valor inteiro ivalue. A função devolve um valor positivo se a parte inteira de fvalue for maior que ivalue, um valor negativo se a parte inteira de fvalue for menor que ivalue ou zero se forem iguais. Na implementação da função só podem ser utilizadas operações aritméticas e lógicas sobre inteiros. Qualquer operação de vírgula flutuante invalida o exercício. int float_with_int_cmp(float fvalue, int ivalue); OBS: eu nao estou a conseguir percerber como funciona o Float e as suas mantissas. O codigo seguinte funciona mas não posso fazer assim o exercicio, ou seja não posso fazer Cast nenhum: #include <stdio.h> int float_with_int_cmp (float fvalue, int ivalue); int main (){ printf("%d\n", float_with_int_cmp(2.5, 1)); return 0; } int float_with_int_cmp (float fvalue, int ivalue){ if((int)fvalue > ivalue) return 1; else if((int)fvalue <ivalue) return -1; return 0; } Tenho que utilizar os conceitos das imagens mas não entendo. Obrigado desde já :)
  4. Ola pessoal, primeiro brigado a quem responder. Estou com duvidas neste exercicio ja pensei e pensei e não consigo chegar a resposta. O Exercicio é o seguinte: Escreva a função findsaw que procura, no inteiro value, a mais longa sequência de bits consecutivos com valores alternados. A função retorna apenas o índice do primeiro bit dessa sequência, sendo 0 o índice do bit de menor peso. No caso de haver mais do que uma resposta possível, deve ser retornada a que corresponder ao menor índice. Por exemplo, a chamada findsaw(0xEAEA476B) deve retornar 23. unsigned int findsaw(int value); OBS: eu fiz algumas coisas so que não estou a conseguir encontrar a "máscara" necessária para resolver o problema Abaixo Segue o que eu consegui fazer. [code] #include <stdio.h> unsigned int findsaw(int value); int main(){ printf("%d\n", findsaw(0x6)); return 0; } unsigned int findsaw(int value){ int count; int bigger; for(count = 0; value != 0; value >>= 1){ if((value & 01) || (value & 010)) count++; else if((value & 00) || (value & 011)){ if(count > bigger) bigger = count; count = 0; } bigger = count; } return bigger; } [/code] Ups sou novo neste forum e não consegui por o codigo bem desculpem pensava que tinha de usar [\code] mas não deu Penso que dá para entender de qualquer forma Obrigado desde já :)
×
×
  • Criar Novo...