Задать вопрос
  • Как сформировать и распарсить битовый пакет в .Net?

    twobomb
    @twobomb
    Можно примерно так
    static void Main(string[] args)
            {
    
                CustomPackage cp = new CustomPackage();
                cp.offset = 3;
                cp.state = true;
                cp.latitude = new BitArray(23);
                cp.latitude.SetAll(true);
                cp.longitude= new BitArray(24);
                cp.longitude.SetAll(false);
                cp.height= new BitArray(24);
                cp.height.SetAll(true);
                cp.speedNS= new BitArray(11);
                cp.speedNS.SetAll(true);
                cp.speedWE = new BitArray(11);
                cp.speedWE.SetAll(true);
    
                var bytes = cp.toBytes();//Пакет в байты 
    
                var p = CustomPackage.FromBytes(bytes);//Пакет из байтов
            }
    
                
        }
    
        
        public class CustomPackage{
            public int offset;// 4 байта смещения
            public bool state;//1 бит - состояние
            public BitArray latitude = new BitArray(23);//23 бита - широта, 
            public BitArray longitude = new BitArray(24);//24 бита - долгота 
            public BitArray height = new BitArray(12);//12 бит - высота
            // 7 бит пропускаем, 
            public BitArray speedNS = new BitArray(11);// 11 бит - скорость относительно оси север-юг, 
            public BitArray speedWE = new BitArray(11);//11 бит - скорость относительно оси запад-восток.
    
    
            public static CustomPackage FromBytes(byte[] arr){
                CustomPackage cp = new CustomPackage();
                BitArray bt = new BitArray(arr);
                int ptr = 0;
                cp.offset = BitConverter.ToInt32(arr, ptr);
                ptr += 32;
                cp.state = bt[ptr++];
                cp.latitude = cp.utilCopyBits(bt, ptr, 23);
                ptr += 23;
                cp.longitude= cp.utilCopyBits(bt, ptr, 24);
                ptr += 24;
                cp.height= cp.utilCopyBits(bt, ptr, 12);
                ptr += 12;
                ptr += 7;
                cp.speedNS= cp.utilCopyBits(bt, ptr, 11);
                ptr += 11;
                cp.speedWE= cp.utilCopyBits(bt, ptr, 11);
    
                return cp;
            }
    
            public byte[] toBytes(){
                byte[] buff = new byte[16];
                int ptr = 0;
                utilWrite(ref ptr, ref buff, new BitArray(BitConverter.GetBytes(offset)),32);
                utilWrite(ref ptr, ref buff, new BitArray(BitConverter.GetBytes(state)), 1);
                utilWrite(ref ptr, ref buff, latitude,23);
                utilWrite(ref ptr, ref buff, longitude,24);
                utilWrite(ref ptr, ref buff, height,12);
                ptr += 7;// 7 бит пропускаем
                utilWrite(ref ptr, ref buff, speedNS, 11);
                utilWrite(ref ptr, ref buff, speedWE, 11);
    
                return buff;
            }
    
            private BitArray utilCopyBits(BitArray source, int offset, int length)
            {
                BitArray b = new BitArray(length);
                for (int i = 0; i < length; i++)
                    b[i] = source[offset + i];
                return b;
            }
            private void utilWrite(ref int ptr, ref byte[] buff, BitArray writeData, int writeBitLength){
                BitArray bt = new BitArray(buff);
                for (int i = 0; i < writeBitLength; i++)
                    bt.Set(ptr++, writeData[i]);
                bt.CopyTo(buff,0);
            }
        }
    Ответ написан
    Комментировать
  • Как записать формулу на visual studio?

    DevMan
    @DevMan
    никак: VS – это IDE; в ней пишут программы (на разных языках), а не формулы.
    Ответ написан
    Комментировать
  • Как пользоваться ассемблером Intel для GPU?

    @rPman
    Если я верно понимаю начинать смотреть тут там же есть sdk для загрузки и opencl tool, не удивюсь если все необходимое там уже есть

    можно заглянуть сюда

    зы а вы с какой целью интересуетесь?
    Ответ написан
    Комментировать
  • Для получения визы должно быть профильное образование?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    По опыту, этот вопрос задают те, у кого нет ни профильного образования, ни профессионального опыта, ни оффера.
    Ничего личного, просто наблюдение.
    Ответ написан
    Комментировать
  • Что изучают на факультете информационная безопасность в мгту им Баумана?

    CityCat4
    @CityCat4 Куратор тега Информационная безопасность
    Жил да был черный кот за углом...
    Для безопасника крайне критичным умением является возможность самому искать и находить ответы на вопросы. Потому что добро, когда ты в специализированной конторе. А когда ты - один и над тобой только генеральный, а выше него - только Господь Иисус - у кого спрашивать-то будешь? :)
    Первая мысль, которая должна была придти в голову - какой адрес у сайта бауманки?
    Вторая - что можно на этом сайте почитать по нужной мне теме?
    Учебные планы по специальностям - как правило в открытом доступе. А там расписано - столько-то часов того, столько-то часов сего...
    Это все - элементарнейший тест на безопасника. Вы его только что успешно ... провалили :)
    Ответ написан
    6 комментариев
  • Что изучают на факультете информационная безопасность в мгту им Баумана?

    @kalapanga
    Изучите сайт университета https://www.bmstu.ru/
    Факультета "Информационная безопасность" нет есть кафедра "Информационная безопасность" на факультете "Информатика и системы управления"
    Поступать Вы будете на специальность, безопасности например касаются специальности:
    https://www.bmstu.ru/bachelor/majors/komputernaa-b...
    https://www.bmstu.ru/bachelor/majors/informacionna...
    Посмотрите программы обучения и т.п.
    На каких основаниях Вам придётся поступать, это лучше всего узнать непосредственно в приёмной комиссии, напишите им, контакты здесь: https://www.bmstu.ru/contacts
    Ну и, как здесь часто повторяют, будущий безопасник такие вещи в интернете должен сам уметь находить! :)
    Ответ написан
    Комментировать
  • Что изучают на факультете информационная безопасность в мгту им Баумана?

    @d-sem
    На факультете могут обучать по разным специальностям. Специальности имеют коды.

    На каждую специальность есть стандарт. ФГОС. Этот стандарт в открытом доступе.

    Зачастую можно запросить более конкретный учебный план и узнать, чему будут учить на конкретной кафедре по конкретной специальности.

    К моменту когда определитесь с кафедрой и специальностью, уже можно в профильных сообществах или даже выпускникам задавать вопросы и там уже могут ответить точнее.
    Ответ написан
    Комментировать
  • Будет ли хорошим подспорьем сертификат DBA для бекенд-разработчика?

    Zoominger
    @Zoominger
    System Integrator
    DBA - это не "строчка в резюме", это очень сложная и обширная область, которая требует очень изнурительного изучения (если мы, конечно, не говорим про курсики "dba senior за 7 дней!!!").

    Мой совет - идите, возможно, станете DBA, а это гораздо почётнее, выгоднее и уважаемее, чем бэкэнд-разработчик.
    Ответ написан
    7 комментариев
  • Как начать понимать UML-схемы?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    А может быть их и не нужно понимать, т.к. их редко используют?

    Именно так.
    Если часто будешь использовать, научишься понимать.
    Если редко - будешь разбираться, а потом забывать.

    Но UML это всего лишь один из вариантов, как фиксировать контракты. Может быть и достаточно удобный и стандартизированный, но не все им пользуются, ибо нарисовать UML это тоже время и задача.
    Ответ написан
    Комментировать
  • Как выполнить код от имени другого пользователя для Linux?

    SagePtr
    @SagePtr
    Еда - это святое
    Подозреваю, что сделать это можно так, как это делается в разных апачах - форкается процесс, затем у дочернего процесса меняется группа и юзер. Несколько юзеров - несколько форков.
    Ответ написан
    Комментировать
  • Делал игру на юните и выдало ошибку cs0246 как исправить?

    karabanov
    @karabanov
    Системный администратор
    Ответ написан
    Комментировать
  • Безопасность логинов и паролей от сайтов в локальной сети?

    gbg
    @gbg Куратор тега Компьютерные сети
    Любые ответы на любые вопросы
    Если вы вводите пароли в устройство, которое которое администрируете не вы (и рабочий компьютер таким устройством, как правило, является), ваши пароли могут быть угнаны самыми разными способами:
    • кейлоггер
    • угонщик куков или LocalStorage
    • частный сертификат организации в хранилище сертификатов


    Вывод: На работе нужно заниматься работой. Если для работы нужно использовать аккаунт где-либо, этот аккаунт вам должен предоставить работодатель. Если же вам все же нужно использовать личный аккаунт (что создает огромную кучу проблем для обеих сторон), вы приносите свое устройство и входите в аккаунт с него.
    Ответ написан
    Комментировать
  • Как посчитать число 2 в 1 000 000 000 000 000 степени?

    @galaxy
    Вам точно или примерно? Если как в физике обычно, то:
    21 000 000 000 000 000 = 10lg(2)*1 000 000 000 000 000 = 10301029995663981,1952137... = 100,1952137... * 10301029995663981 = 1,567522 * 10301029995663981
    Ответ написан
    1 комментарий
  • Как посчитать число 2 в 1 000 000 000 000 000 степени?

    wataru
    @wataru Куратор тега Математика
    Разработчик на С++, экс-олимпиадник.
    2^10 ~ 10^3. 2^1 000 000 000 000 000 ~ 10^300 000 000 000 000.

    Это число, у которого очень много знаков. Его запись в файле займет 272 терабайта. Соответственно, для его вычисления понадобится или подобное количество памяти, или какие-то очень хитрые алгоритмы с записью в промежуточные файлы и в несколько раз больше места на диске.

    Вряд ли у вас цель - получить эти 300 миллиардов цифр. Наверно, вам нужно что-то с этим числом делать. Возможно, это можно сделать без вычисления всех цифр числа. Например, если вам нужны последние 100 цифр - то можно на том же питоне производить вычисления по модулю 10^100. Правда, придется писать экспоненциальное возведение в степень самостоятельно.
    Ответ написан
    Комментировать
  • Как посчитать число 2 в 1 000 000 000 000 000 степени?

    iiiBird
    @iiiBird
    Пока ты спишь - твой конкурент совершенствуется
    Пробовал в Python, но напрямую такое число не посчитаешь.

    Напрямую ты нигде такое не посчитаешь.

    гугли про длинную арифметику https://ru.wikipedia.org/wiki/%D0%94%D0%BB%D0%B8%D... и различные алгоритмы.
    к примеру возведение в степень можно переделать на умножение и готовым алгоритмом умножать. а как ты это будешь делать - понятия не имею. тебе понадобится очень много свободного места для записи всех этих чисел и промежуточных вычислений.
    Ответ написан
    Комментировать
  • Как посчитать число 2 в 1 000 000 000 000 000 степени?

    BorLaze
    @BorLaze
    Java developer
    Напрямую, конечно, не посчитаешь.

    Даже если программно реализовать арифметику для сверхбольших чисел, тогда будет ну очень трудно найти столько места для записи числа.

    Примерно - можно подумать. Типа, дошли до миллиона, имеем значение 123й степени = 1234567, отбрасываем тысячи, и запоминаем - 124я степень равна 2467 тысяч.
    Дальше - точно так же считаем 567я степерь равна 9876 миллионов, ну и прочая-прочая-прочая.

    Конечно, получится плюс-минус лапоть, но какое-то примерное значение выйдет.
    Ответ написан
    Комментировать
  • Как разработать iOS-приложение для iPhone в среде Linux?

    Zoominger
    @Zoominger
    System Integrator
    Никак.
    Разработка по Apple не то, чтобы в Linux, она даже в Windows невозможна, потому что происходит под Xcode, который есть монопольно под macOS.
    Ну или в виртуалке разверните macOS и пытайтесь там.
    Ответ написан
    5 комментариев
  • Как обратиться к значению словаря по ключу Dictionary в C#?

    @none7
    Dictionary строит хеш-таблицу на основе значений возвращённых методом GetHashCode каждого ключа, а так же производит сравнение ключей методом Equals. Класс Dictionary насколько я знаю не переопределяет эти методы, а значит GetHashCode создаётся из указателя. То есть в качестве ключа можно использовать тот самый объект, с которым добавляли новый ключ или если ссылка на него утрачена, то можно его получить через итерацию ключей.
    Никогда не используйте такие конструкции! Dictionary предназначен для работы только с неизменяемыми ключами отдающими всегда один и тот же хеш на основе содержимого объекта.
    Хотя если этот Ваш Dictionary<Dictionary<string, string>, int> создан с компаратором, который из Dictionary<string, string> вычисляет хеш и проверяет равенство объектов по содержимому, то можно просто создать новый Dictionary<string, string> с нужными ключами и значениями и использовать его в качестве ключа. А если не создан то можно создать новый Dictionary на его основе уже с компаратором.
    Ответ написан
    1 комментарий