Форум программистов, компьютерный форум CyberForum.ru

Смысл обьединений - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вывести всю информацию о предприятии (РНН,БИН и т.д.) http://www.cyberforum.ru/cpp-beginners/thread890207.html
такой вопрос: надо написать скрипт или экзешник,без разницы,на каком языке тоже,чтобы он выдавал всю информацию о предприятии(РНН,БИН и т.д.). Как удобнее это сделать? Прошу учесть что я не имею большого опыта в программировании,и если можно то поподробнее пожалуйста,заранее благодарен
C++ Получить в порядке возрастания N первых натуральных чисел, которые не делятся ни на какие простые числа, кроме 2, 3 и 5 Дано натуральное число N. Получить в порядке возрастания N первых натуральных чисел, которые не делятся ни на какие простые числа, кроме 2, 3 и 5. #include <iostream> #include <conio.h> #include <math.h> using std::cout; using std::endl; http://www.cyberforum.ru/cpp-beginners/thread890206.html
C++ требуется переделать со структурами
помогите когда сдавал программу препод сказал чтоб переделал со структурами... //лаба 12_1 вариант 9 #include <stdio.h> #include <conio.h> #include <string.h> #include <clocale> #include <stdlib.h> int main()
C++ Переместить элементы массива
Добрый день, форумчане. Помогите пожалуйста написать программу. Переместить элементы массива вправо на m позиций, при этом m элементов из конца массива перемещаются в начало.
C++ Ошибка (правильность написания логических операций) http://www.cyberforum.ru/cpp-beginners/thread890166.html
/--------------------------------------------------------------------------- #include <iostream> //#include <vcl.h> #pragma hdrstop #include <stdio.h> #include <string.h> //--------------------------------------------------------------------------- using namespace std; int skobki(string s) {
C++ Написать функцию умножения двух,заданных с клавиатуры чисел, используя только операцию умножения и рекурсию Помогите пожалуйста с рекурсией Написать функцию умножения двух,заданных с клавиатуры чисел, используя только операцию умножения и рекурсию. Спасибо. подробнее

Показать сообщение отдельно
XRuZzz
Антикодер
577 / 478 / 23
Регистрация: 15.09.2012
Сообщений: 2,429
04.06.2013, 12:03     Смысл обьединений
при работе со встраиваемыми системами удобно использовать
можно задать структуру пакета в битах
(никто не рисовал, а я нарисую)
вот у нас есть один байт, разбитый на биты (например настройки RS232)
| бит скорости 3 | бит скорости 2 | бит скорости 1 | бит скорости 0 | бит стопового бита | бит упр. потоком | бит четности 1 | бит четности 0

в старших четырёх битах можно задавать скорость передачи (например 0001 = 2400 бит/c)
в младших прочие настройки

заполняем структуру
C++
1
2
3
4
5
6
7
8
9
10
11
union
{
    struct
    {
        unsigned char speed:4;
        unsigned char stop: 1;
        unsigned char control:1;
        unsigned char parity:2;
    };
    unsigned char  byte;
} control;
настройками
C++
1
2
3
4
control.speed = SPEED_2400;   // define равный 0001
control.stop = 1;
control.control  = 1;
control.parity = 1;
потом тупо ничего никуда не копируем просто пишем

C++
1
send(control.byte)
и все настройки отправлены куда надо

Добавлено через 8 минут
вот ещё наглядный пример под рукой оказался(не буду вспоминать источник, откуда брал, сами наткнётесь при изучении плавающих точек)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <iostream>
#include <stdint.h>
#include <iomanip>
#include <math.h>
using namespace std;
int main()
{
   union FloatStruct
   {
      float value;
      struct
      {
         int mantissa:23;
         int exp:8;
         int sign:1;
      };
      char byte[4];
   }fl;
  fl.mantissa = 644987;
   fl.exp = 254;
   fl.sign = 0;
   /* fl.byte[0] = 0xE0;
   fl.byte[1] = 0xF4;
   fl.byte[2] = 0x12;
   fl.byte[3] = 0x00;*/
   std::cout << std::setprecision(40) << setw(20) << fl.value << endl;// эту строчку раскоментир., если не знаешь, что такое отладчик :-)
   cout << hex;
   cout << fl.exp<< endl;
   cout << fl.mantissa << endl;
   cout << hex << fl.mantissa << endl;
   for (int i = 0; i < 4; i++) cout << hex<< (int) fl.byte[i] << endl;
   cout << endl;
   float res = pow(2, -4) + pow(2, -7) + pow(2, -9) + pow(2, -10) + pow(2, -11) + pow(2, -12) + pow(2, -14) + pow(2, -17) + pow(2, -18) + pow(2, -19);
   cout << res;
}
 
Текущее время: 23:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru