Manipulação de Bits

5 respostas
A

Blz Galera,

Por favor, me dêem uma ajudinha aki… eu estou tentando construir o cabeçario de um pacote RTP, mas estou tamando um erro de perda de valor… é o seguinte:

tenho um array de integer header[12] e estou tentando setar aos bits desse array da seguinte forma…

header[0] = header[0] | Version <<6
header[0] = header[0] | Padding <<5
header[0] = header[0] | Extension <<4
header[0] = header[0] | CC <<0
.
.
.
.
as variáveis Version, Padding, Extension e CC são inteiros tb.

Mas não estou conseguindo… ele dá esse erro de perda de valor… o que estou fazendo de errado… será que alguém consegue me dar uma luz…

valew galera e obrigado desde já!!! :grin:

5 Respostas

H

Tente colocar um par de parênteses envolvendo os dois operadores de <<

A

Valew por responder, mas não é isso não… vou passar exatamente como está no meu…

//build the header bistream:
//--------------------------
header = new byte[12];

//fill the header array of byte with RTP header fields

header[0] = header[0] | ( Version &lt;&lt; 6 ) ;
header[0] = header[0] | ( Padding &lt;&lt; 5 );
header[0] = header[0] | ( Extension &lt;&lt; 4 );
header[0] = header[0] | ( CC &lt;&lt; 0 );

e continua…

o erro… possible loss of precision … para cada linha… alguém saberia me dizer…?

valew!!!1

M

tente colocar um cast pra byte antes da atribuição…

H

Ah, bom! Vc tinha dito que header é um array de int, mas na verdade é um array de bytes.

header&#91;0&#93; = &#40;byte&#41; &#40;header&#91;0&#93; | &#40; Version &lt;&lt; 6 &#41; &#41;;
A

Pô… verdade… me confundi… mas valew pela a ajuda hipersoft… vou testar isso agora e vejo se deu certo!!!

valew :grin:

Criado 25 de abril de 2005
Ultima resposta 27 de abr. de 2005
Respostas 5
Participantes 3