Ir para conteúdo
Fórum Script Brasil
  • 0

Pegando 2bytes Tipo Char E Colocando Em Uma Variavel Tipo Int


WarSoldier

Pergunta

Pessoal to abrindo um arquivo com ifstream arq("ric.txt", ios::in | ios::binary); consigo percorre ele de dois em dois bytes (16bits).

No caso eu queria pegar dois 2 bytes e colocar em uma variavel do tipo unsigned int...

Como cada caracter tem 8bits, pegando dois ficaria com 16bits, mas eu não to conseguindo fazer isso, ate consigo saltar de dois em dois bytes... Mas unir dois caracter e ficar com 16bits dentro de uma variavel só... não to consegindo... Se alguém tiver alguma ideia...

não sei se no caso teria que trabalhar com binario para fazer esse uniao...

tipo Um caracter e o segundo caracter

........1111111111................ 100000000

pegar o primeiro e o segundo e ficaria dentro de um inteiro 1111111110000000...

Ou melhor, para explica

8bits 8bits

char teste= {A, C}

juntando 16bits

unsigned int inteiro= queria colocar aqui o A e o C (ou seja um numero só)

poxa acho que agora sai rsrs...

Falow

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0
não sei se no caso teria que trabalhar com binario para fazer esse uniao...

tipo Um caracter e o segundo caracter

........1111111111................ 100000000

pegar o primeiro e o segundo e ficaria dentro de um inteiro 1111111110000000...

Bom, acho que essa é a forma mais viável. Você teria que convertê-los para binário, juntar os bits e depois converter novamente para decimal.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0
No caso essa coversão tem que ser na força fruta rsrs...

Ou tem algum comando que já converte numeros decimais em binarios na linguagem C++

Que eu saiba não tem. Mas, você só tem que reproduzir em código os cálculos que fazemos na mão.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

sera que funciona vou testar

/* itoa example */

#include <stdio.h>

#include <stdlib.h>

int main ()

{

int i;

char buffer [33];

printf ("Enter a number: ");

scanf ("%d",&i);

itoa (i,buffer,10);

printf ("decimal: %s\n",buffer);

itoa (i,buffer,16);

printf ("hexadecimal: %s\n",buffer);

itoa (i,buffer,2);

printf ("binary: %s\n",buffer);

return 0;

}

Output:

Enter a number: 1750

decimal: 1750

hexadecimal: 6d6

binary: 11011010110

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...