Вводится число типа беззнаковое длинное целое. Определить состояние 20-го и 21-го бита. Установить в нулевое состояние 4-й и 5-й биты числа

 

Программа:

 /*программа для определения 20-го, 21-го и сброса 4-го и 5-го бита числа */

 #include <conio.h>

 #include <stdio.h>

 main ()

 {

unsigned long a,b,ms20=524288,ms21=1048576,m045=2147483623;

              /*ms20 маска для определения 20-го бита,*/

              /*ms21 маска для определения 21-го бита,*/

              /*m045 маска для сброса 4-го и 5-го бита в веденном числе.*/

clrscr ();

printf ("Введите положительное целое число от 0 до 2'147'483'647 - ");

scanf ("%ld",&a);

if (a<=2147483647 && a>0)      /*Проверка правильности ввода*/

{

              b=a&ms20; /*Проверка 20-го бита*/

    if(b==0)

    {

    printf ("20-й бит в числе %010ld равен -\"0\"\n\r",a);

    }

    else

    printf ("20-й бит в числе %010ld равен -\"1\"\n\r",a);

 

              b=a&ms21; /* Проверка 21-го бита*/

    if(b==0)

    {

    printf ("21-й бит в числе %010ld равен -\"0\"\n\r",a);

    }

    else

    printf ("21-й бит в числе %010ld равен -\"1\"\n\r",a);

 

              b=a&m045; /*Сброс 4-го и 5-го бита*/

    printf ("После сброса 4-го и 5-го бита число равно %010ld\n\r",b);

}

else

printf ("Неправильно введено число");

 getch ();

 }

 Пример исполнения:

 

 

Алгоритм:

 

4. Вывести на экран таблицу N значений заданной функции: y=sin(x)+sin(3x)/3/. Диапазон изменения переменной x [0; 6.28]. Количество точек таблицы N=100, ширина поля вывода переменных x и y – 9 позиций, точность- 4 позиции

 

Программа:

/* Программа для расчета заданной функции на 100 значений при Х=[0;6.28]*/

#include<stdio.h>

#include<math.h>

#include<conio.h>

main()

{

float x=0,y,dx=6.28/100;                               /*dx шаг приращения х*/

int n;

    clrscr(); /*рисуем шапку таблицы*/

    printf("| № | X | Y |\n");

    printf("---------------------------\n");

 

 for (n=1;n<=100;n++,x=x+dx)                              /*... и значение х*/

    {

    y=sin(x)+sin(3*x)/3;                             /* значение у */

    printf("|%3d|%9.4f |%9.4f|\n",n,x,y);

              if((n%20)==0)

              {

              printf("---------------------------");   /*низ таблицы на экране*/

              gotoxy(3,24);

                       if (n==100)

                       cprintf (" Расчет закончен. \n\r");

                       cprintf ("Для продолжения нажмите пробел.");

              getch();

              gotoxy(1,3); /*возврат курсора под шапку табл.*/

              }

              else

             ;

    }

}

Пример исполнения:

 


Алгоритм:




Привести краткое описание указанного элемента языка Си: функции преобразования чисел в строки и наоборот, синтаксис, примеры использования

Стандартные функции преобразования данных.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: