(Tutorial) Operador AND (&)


Bem. Primeiramente olá a todos.

Hoje irei ensinar um tutorial que já me pediram algumas vezes, mas nunca tive vontade de fazer. Finalmente vou explicar como funciona os famosos operadores bit a bit, ou operadores estruturados em portas lógicas.

Primeiramente você deve saber que estes operadores usam instruções baseadas nas instruções booleanas. Mentirosas e Verdadeiras. Falses e Trues. 0 e 1


Vamos aos operadores:

Operador AND


Primeiramente você precisa gravar as seguintes regras:

A B (A & B)
0 0 0
0 1 0
1 0 0
1 1 1

Essas regras mudam de operador para operador. Mas basicamente operadores binários tem a mesma função o que muda é a regra acima.

A regra acima chama-se tabela verdade
http://pt.wikipedia.org/wiki/Tabela_verdade

Aqui outras regras:
http://pt.wikipedia.org/wiki/Porta_l%C3%B3gica

Em c++:
printf("%d", 0 & 0); // 0
printf("%d", 0 & 1); // 0
printf("%d", 1 & 0); // 0
printf("%d", 1 & 1); // 1

Resumindo a regra: Valores diferentes retorna falso. Valores que contenham zero em um dos parametros, retorna false. (Isto é, só 1 & 1 pode retornar verdadeiro)

Pois bem, já sabemos uma parte do operador &. Mas vem outra questão.

Quando os números usados como parâmetros são diferentes de 1 e 0? Como 10 & 15 ??

Como:
printf("%d", 10 & 15); // ??

Simples. O operador pega os valores de entrada e os transforma em binários:

Conversão para Binários:
10 -> 1010
15 -> 1111

Então usamos os próprio números binários para checagem BIT a BIT dos valores (algarismo por algarismo | digito por digito do número binário)

(10) (15)
1 1
0 1
1 1
0 1

Agora só aplicar as regra da tabela

1 & 1? 1
0 & 1? 0
1 & 1? 1
0 & 1? 0

Resultado:
1010

Agora por último a função transforma o número binário 1010 em decimal. Ficando 10

Logo 10 & 15 = 10

-----------------------------------------------------------------------

Pra que serve?

Para manipular os valores usando lógicas complexas. Exemplo

Saber se um número é Impar:

Para saber se um número é impar usando este operador basta usar (n & 1) sendo "n" o número a saber:

Ex:
9 & 1


Transformar em binário:
9 -> 1001
1 -> 0001

Comparar bit a bit:
1 & 0 =  0
0 & 0 =  0
0 & 0 =  0
1 & 1 =  1

Retornou 0001! Sim, 9 é impar.

-
-
-

Outro exemplo:
(12 & 1)



Transformar em binário:
12 -> 1100
1 -> 0001

Comparar bit a bit:
1 & 0 =  0
1 & 0 =  0
0 & 0 =  0
0 & 1 =  0

Retornou 0000 !! Não, 12 não é impar.

-
-

Entenderam?
_

** Importante - Dica
Para saber o valor binário de um número basta fazer:

printf("%b", VALOR);

Ex:
printf("%b", 15); // 1111


Simples não é? Não é muito difícil, precisa ler bem e entender. Dúvidas? Poste um comentário aqui!

Tutorial Criado por Bruno da Silva

(Javascript) Imprimir por ID (parte de um documento)

Como imprimir apenas um elemento da página? Simples, usando uma engenharia reversa bastante fácil, podemos imprimir e fazer isto facilmente.

Digamos:

Não quero imprimir esta parte <div id=parteImportante>quero imprimir esta parte</div> 

Basta eu usar a função que crei. printId. Basta usar printId('parteImportante')


Enfim, segue o código da função:



Espero que gostem, abraços!!

(Javascript) intToChar - números para caracteres

Para transformar números para caracteres em javascript é bastante simples, em uma única linha podemos facilmente transformar.

Criei uma função para facilitar o uso. Segue o código da função:

Exemplo de uso:
alert(intToChar(64)) -> Irá mostrar o alerta "@" pois o arroba equivale a 64 na tabela de caracteres

Espero que tenham entendido, é bem simples. Abraço

(Java) J2ME Colocar imagem na tela

Para colocar uma imagem na tela é bastante simples !! Basta criar  a imagem e dar append no fórmulario com ela ...



Abração galera.

(Java) setTimer Timer em J2ME



Para fazer setTimer em java j2me é muito simples. Adicione o seguinte trecho de código para iniciar o timer (commandAction por exemplo)

            tempo = new Timer();
            tarefa = new callBackPublica();
            tempo.schedule(tarefa,5000);
     // 5000 = 5 segundos

Nas declarações das variáveis privadas coloque o seguinte código

    private Timer tempo;
    private TestTimerTask tarefa;

Após isto, coloque  o seguinte código abaixo de todas as públicas/privates

private class callBackPublica extends TimerTask {
        public final void run() {
// codigo a ser executado após 5 segundos
} }

Espero que tenham gostado gente *-*
Até mais

(Java) J2ME BRS Mobile TV



[BRS] Mobile TV

Hoje pela noite (02/06/2012)  comecei o desenvolvimento do BRS Mobile TV. É um sistema de televisão no celular baseado nas tecnologias RTSP. Basicamente ele faz uma listagem a partir de um banco de dados que tenho aqui e pega o link de algumas streamings funcionais

http://pastebin.com/LB9j8cTY

Então o aplicativo abre o tal link e começa a transmissão da TV. Basta abrir o aplicativo, escolher o canal e ser feliz. Lembrando que precisa ter internet. Também lembrando que Wifi nem sempre funciona com RTSP o aparelho precisa estar bem configurado.

Os canais são ruins, mas pretendo começar a eu mesmo transmitir alguns canais e se possível com ajuda de vocês me enviarem novos canais bons em RTSP que funcionem, assim estarei colocando sempre novos canais no banco de dados.

O aplicativo ainda não está totalmente acabado, pretendo colocar umas coisinhas a mais, mas por enquanto é isto. Se alguém puder testar bem no seu celular e me reportarem canais que FUNCIONAM. 

Links para download:
http://www.solidfiles.com/d/0858d509a2/ - Versão 2

www.brunodasilva.com.br @ Bruno da Silva - [iPs]TeaM

Testado e aprovado em:
Nokia C3
Nokia N8 - Belle
Nokia C7 - Belle
Nokia C7 - S^3
Nokia C7 - Anna
Nokia C6
Nokia N85
Nokia 3120c
Nokia 5220
Nokia 5200

Samsung Corby I e II

Versão 2
+ Corrigido os bugs de abertura.
+ Colocado mais informações sobre o aplicativo

Informações importantes:

- No momento para carregar os canais pode demorar alguns segundos. No máximo 30 segundos até baixar todo banco de dados. 
- A disponibilidade dos canais nem sempre é boa, por isto peço ajuda de vocês com canais RTSP
- Reportem se existirem bugs ou erros no programa
- Para testar se o canal funciona basta em "Ir Para o Endereço da Web" e colar o link do canal. Se algum canal funcionar, me fala para colocar no aplicativo!