Пример: Глобальная сеть INTERNET
Я ищу:
На главную  |  Добавить в избранное  

Главная/

Радиоэлектроника, компьютеры и периферийные устройства. /

Вычислительные системы и микропроцессорная техника

Документ 1 | Документ 2 | Документ 3 | Документ 4 | Документ 5 | Документ 6 | Документ 7

// comptech.cpp  17.6.96

//

// Программа преобразует код 16-ти разрядного слова

// таким образом, что число единиц во входном слове

// заменяется на последовательностью нулей в выходном

// 16-ти разрядном слове. Нули справа.

//

// Останов происходит, когда во входном слове не остается единиц

 

#include <conio.h>

#include <stdio.h>

void main(void)

  {

  union WORD16

    {

    int sw;

    char sb[2];

    };

  WORD16 x; // input code [BC]

  WORD16 y; // output code[DE]

  WORD16 t; // accumulator[AF]

  //clrscr();

  printf("\n\n\n\n*******************");

  printf("\n                  h");

  printf("\r input word x=");

  scanf("%x",&x.sw);

  y.sw=-1;

  while(x.sw != 0)

    {

    //

    t.sw=0;

    // (b)->(a)

    t.sb[1]=x.sb[1];

    // RAR a

    t.sw/=2;

    x.sb[1]=0x00;

    x.sb[1]=t.sb[1]&0x07f;

    if(t.sb[0]&0x80)

      {

      // CY=1

      t.sb[1]=0x01;

      }

    else

      {

      // CY=0

      t.sb[1]=0x00;

      }

    // (c)->(a)

    t.sb[0]=x.sb[0];

    // RAR a

    t.sw/=2;

    if(x.sb[0]&0x01)

      {

      // CY=1

      x.sb[0]=t.sb[0];

      // (e)->(a)

      t.sw=y.sw;

      // RAL a

      t.sw*=2;

      y.sw=t.sw;

      }

    else

      {

      // CY=0

      x.sb[0]=t.sb[0];

      }

    }

  printf("output word y=%xh",y.sw);

  getch();

  return;

  } // end main


Copyright © 2005—2007 «RefStore.Ru»