Есть устройство подключенное к шине ISA, которое периодически слушаю программой. Устройство передает пакет состоящий из 4х байт (32 бит), в пакете закодирована дата, я так понимаю в формате BCD (выделил красным полигоном), что интересно, устройство передает пакет не как массив байт, а как целое число (так реализовано в апи):
Не знаю как правильно собрать эту информацию и в какой вид привести правильно и по фен шую. Больше всего склоняюсь к тому, что бы перевести значение в строку.
Допустим я битовыми сдвигами выделю каждую тетраду из целого числа и так же переведу в целое число. А дальше как, перевести в строку? Можно ли так делать? Или лучше перевести в байты и манипулировать уже ими?
Ну для примера я набросал что-то вроде такого псевдокода:
public struct MyDate
{
public int Day { get; set; }
public int Month { get; set; }
public int Year { get; set; }
}
public MyDate HwDate
{
get
{
date.Day = GetFrame(data, сдвиг1, сдвиг2);
date.Month = GeFrame(data, сдвиг1, сдвиг2));
date.Year = GetFrame(data, сдвиг1, сдвиг2);
return date
}
}
// value - входящие данные от устройства
public int GetFrame(uint value, int length, int shift)
{
var mask = ((1U << length) - 1) << shift;
var frame = value & mask;
return (int) frame;
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Задание: Друзья составили про Петю задачу: наш друг Петя ест невкусную макаронину длиной 60кмКаждый день он съедает N метров этой макаронины...
Описываю метод destroy класса TasksController: Написал вот такую функцию:
Прошу помочь с задачей: есть цикл, в котором выводяться личные сообщения, юзера с его рефером (собеседником)