introducao_c_camillo_pucpr
136 pág.

introducao_c_camillo_pucpr


DisciplinaAlgoritmos e Estrutura de Dados I706 materiais7.917 seguidores
Pré-visualização31 páginas
do código que segue implementando as funções que estão sendo chamadas. O
bit mais significativo seria o bit de número 8 (oito) e o bit menos significativo seria o bit de número 1 (um), ou
seja, a númeração dos bits vão da direita para a esquerda (menos significativo para o mais significativo).
Funções a serem implementadas:
ContarBitsLigado - que recebe o conteúdo de um caractere como parâmetro e retorna o número de bits
ligados deste caractere.
DesligarBit - que recebe o endereço de um caractere e o número do bit a ser desligado.
InverterBit - que rebebe o endereço de um caractere e o número do bit a ter o seu valor invertido, se 1 (um)
tornar 0 (zero) e vice-versa.
LigarBit - que recebe o endereço de um caractere e o número do bit a ser ligado.
EstadoBit - que recebe o conteúdo de um caractere e o bit a ser verificado o estado. Ligado ou desligado.
/********************************************************************************
Protótipos de funções
********************************************************************************/
_____________ ContarBitsLigado( _____________, _____________);
_____________ DesligarBit( _______________, _______________);
_____________ InverterBit( _______________, _______________);
_____________ LigarBit( _______________, _______________);
_____________ EstadoBit( _______________, _______________);
/*******************************************************************************
Funções
*******************************************************************************/
void main()
{
unsigned char Chr, Nbits, Bit;
Chr = 0x80;
LigarBit(&Chr,4);
Nbits = ContarBitsLigado(Chr);
LigarBit(&Chr,5);
Nbits = ContarBitsLigado(Chr);
Chr = ~Chr;
DesligarBit(&Chr,6);
DesligarBit(&Chr,5);
Nbits = ContarBitsLigados(Chr);
InverterBit(&Chr,4);
Bit = EstadoBit(Chr,1);
DesligarBit(&Chr,1);
Aspectos Formais da Computação - linguagem C
Prof. Camillo Oliveira
pág. 116
DesligarBit(&Chr,6);
Nbits = ContarBitsLigados(Chr);
}
_____________ ContarBitsLigado( _____________, _____________)
{
______________________________________________________
____________________________ __________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
____ __________________________________________________
______________________________________________________
}
______________ DesligarBit( _______________, _______________)
{
______________________________________________________
_________________________ _____________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
}
Aspectos Formais da Computação - linguagem C
Prof. Camillo Oliveira
pág. 117
______________ InverterBit(_______________, _______________)
{
______________________________________________________
______________________ ________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
}
______________ LigarBit( _______________, _______________)
{
______________________________________________________
______________________ ________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
}
______________ EstadoBit(_______________, _______________)
{
______________________________________________________
______________________ ________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
}
Aspectos Formais da Computação - linguagem C
Prof. Camillo Oliveira
pág. 118
2. Complete a função main do código que segue implementando as funções que estão sendo chamadas. O
bit mais significativo seria o bit de número 8 (oito) e o bit menos significativo seria o bit de número 1 (um),
ou seja, a númeração dos bits vão da direita para a esquerda (menos significativo para o mais
significativo).
Funções a serem implementadas:
ContarBitsLigado - que recebe o conteúdo de um caractere como parâmetro e retorna o número de bits
ligados deste caractere.
DesligarBit - que recebe o conteúdo de um caractere e o número do bit a ser desligado e retorna o caractere
com o bit desligado.
InverterBit - que rebebe um caractere e o número do bit a ter o seu valor invertido, se 1 (um) tornar 0 (zero)
e vice-versa e retorna o caractere com o bit invertido.
LigarBit - que recebe o conteúdo de um caractere e o número do bit a ser ligado e retorna o caractere com o
bit desligado.
EstadoBit - que recebe o conteúdo de um caractere e o bit a ser verificado o estado e retorna um (ligado) ou
zero (desligado).
/********************************************************************************
Protótipos de funções
********************************************************************************/
_____________ ContarBitsLigado( _____________, _____________);
_____________ DesligarBit( _______________, _______________);
_____________ InverterBit( _______________, _______________);
_____________ LigarBit( _______________, _______________);
_____________ EstadoBit( _______________, _______________);
/*******************************************************************************
Funções
*******************************************************************************/
void main()
{
unsigned char Chr, Nbits, Bit;
Chr = 0x90;
Chr = LigarBit(Chr,4);
Nbits = ContarBitsLigado(Chr);
Chr = LigarBit(Chr,5);
Nbits = ContarBitsLigado(Chr);
Chr = ~Chr;
Chr = DesligarBit(Chr,6);
Chr = DesligarBit(Chr,5);
Nbits = ContarBitsLigados(Chr);
Chr = InverterBit(Chr,4);
Bit = EstadoBit(Chr,1);
Aspectos Formais da Computação - linguagem C
Prof. Camillo Oliveira
pág. 119
Chr = DesligarBit(Chr,1);
Chr = DesligarBit(Chr,6);
Nbits = ContarBitsLigados(Chr);
}
_____________ ContarBitsLigado( _____________, _____________)
{
__________ ____________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
__________________________________________ ____________
______________________________________________________
______________________________________________________
______________________________________________________
}
______________ DesligarBit( _______________, _______________)
{
_______ _______________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
_______________________________________ _______________
______________________________________________________
______________________________________________________
______________________________________________________
}
Aspectos Formais da Computação - linguagem C
Prof. Camillo Oliveira
pág. 120
______________ InverterBit( _______________, _______________)
{
___ ___________________________________________________