Crazydani 0 Denunciar post Postado Outubro 2, 2005 Ae galera, é o seguinte!Estou fazendo um Sistema tolerante a falhas e queria saber se tem alguma biblioteca com a tabela ascii... tô meio perdida prá fazer a conversão de uma mensagem em codificação ascii. Depois ainda tenho que transformar para binário e fazer os bit´s de paridade...Com uma biblioteca ia ficar bem mais fácil... ou alguma outra idéia pessoal?Tô tentando fazer uma matriz com os códigos da tabela, mas não tá saindo nada!!!Obrigada desde já! Compartilhar este post Link para o post Compartilhar em outros sites
nith_head 0 Denunciar post Postado Outubro 3, 2005 Ola CrazyDani. Não entendi sua pergunta direito. É para fazer a conversão de uma mensagem que já esteja em codigo ASCII para outro tipo ou para converter uma mensagem texto para ASCII. E qual seu compilador? Se for o segundo caso, converter uma mensagem para codigo ascii, consegui fazer uma função que converte os caracteres de uma frase para Ascii, imprimindo na tela um de cada vez. Aqui está: /* srtlen(s) * Função que retorna o tamanho da cadeia s */strlen(s)char *s;{int n;for (n=0; *s !='\0'; s++,n++);return (n);}/* Função que retorna codigo ascii de cada caractere de uma frase */strasci(matriz) // recebe endereço da matriz como argumentochar matriz[];{char d;for (d=0; d<strlen(matriz); d++)printf("Endereço=%5u caractere='%c' cod.asci= %d\n",(matriz+d),*(matriz+d),*(matriz+d));} É preciso escrever as duas funções, pois a strasci() necessita da strlen() para saber a quantidade de caracteres. Agora ai vai um exemplo de uso da função strasci(): /* Versão para Linux */#include <stdio.h>main (){ // Declaração de função gets() char *gets(char *s); /* Função gets() do compilador gcc do Linux */ char frase[81]; // limitando o numero de caracteres da frase printf("Digite uma frase: "); gets(frase); strasci(frase); /* passando o endereço da matriz frase como argumento para a função strasci() */}Espero ter ajudado. Compartilhar este post Link para o post Compartilhar em outros sites
DAVIFN 0 Denunciar post Postado Novembro 11, 2012 Você quer os números ASCII? Então basta criar um programa qualquer com: #include<windows.h> #include<stdio.h> #include<stdlib.h> int main() { int Ascii=0; FILE*Arquivo=fopen("Arquivo das teclas Ascii","w"); while(Ascii<=256) { fprintf(Arquivo,"%c = %d\n",Ascii,Ascii); Ascii++; } fprintf(Arquivo,"Criado por DAVIFN!"); fclose(Arquivo); if(MessageBox(NULL,"Abrir o arquivo das teclas ASCII?","DAVIFN",MB_YESNO)==6){ if(ShellExecute(NULL,"open","notepad.exe","Arquivo das teclas Ascii",NULL,SW_NORMAL)==NULL){} MessageBox(NULL,"Arquivo aberto com sucesso!\n\n Criado por DAVIFN!","DAVIFN",MB_OK);} } Nem sei se funciona isto, criei agora. Espero ter ajudado alguém. Compartilhar este post Link para o post Compartilhar em outros sites
guidjos 65 Denunciar post Postado Novembro 11, 2012 É preciso definir melhor seu problema. C pode ou não usar ASCII como codificação de texto. Compartilhar este post Link para o post Compartilhar em outros sites
Mateus GP 13 Denunciar post Postado Novembro 19, 2012 Suas duvidas não são evidentes, para uma melhor resposta aconselho que as especifique. Quanto ao bit de paridade é extremamente fácil de obtê-lo. #define getbit(_by, _pos) ((_by >> _pos) & 0x01) //... int par; char c; //.. par = getbit(c, 7); Com apenas um loop simples e getbit é possível converter um caractere para o sistema binário. Compartilhar este post Link para o post Compartilhar em outros sites
Mateus GP 13 Denunciar post Postado Novembro 19, 2012 É preciso definir melhor seu problema. C pode ou não usar ASCII como codificação de texto. Mas por padrão é o ASCII, para outros tipos de codificação (unicode: UTF-7, UTF-8, UTF-16, UTF-32, UCS, UCS-4, SCSU e Punycode), faz se necessário o uso de outros tipos e funções, como char16_t e char32_t. Compartilhar este post Link para o post Compartilhar em outros sites
guidjos 65 Denunciar post Postado Novembro 19, 2012 Não. O padrão não é ASCII. Não existe padrão em C. As únicas imposições feitas pela linguagem são listadas (C11) em 5.2.1.2: (...) — The basic character set shall be present and each character shall be encoded as a single byte. — The presence, meaning, and representation of any additional members is locale specific. — A multibyte character set may have a state-dependent encoding, wherein each sequence of multibyte characters begins in an initial shift state and enters other locale-specific shift states when specific multibyte characters are encountered in the sequence. While in the initial shift state, all single-byte characters retain their usual interpretation and do not alter the shift state. The interpretation for subsequent bytes in the sequence is a function of the current shift state. — A byte with all bits zero shall be interpreted as a null character independent of shift state. Such a byte shall not occur as part of any other multibyte character. Compartilhar este post Link para o post Compartilhar em outros sites
Mateus GP 13 Denunciar post Postado Novembro 20, 2012 Não. O padrão não é ASCII. Não existe padrão em C. As únicas imposições feitas pela linguagem são listadas (C11) em 5.2.1.2: Mas está sobre os domínios da norma ISO/IEC 646. Com a seguinte exceção: 17) The trigraph sequences enable the input of characters that are not defined in the Invariant Code Set asdescribed in ISO/IEC 646, which is a subset of the seven-bit US ASCII code set. Compartilhar este post Link para o post Compartilhar em outros sites
guidjos 65 Denunciar post Postado Novembro 26, 2012 O rodapé citado não afirma que ASCII, ou qualquer subconjunto dela, é o padrão de C. Leia novamente: as sequências de trigraphs (definidas em 5.2.1.1) permitem representar caracteres que não são definidos no subconjunto de ASCII definido pela ISO/IEC 646. Compartilhar este post Link para o post Compartilhar em outros sites