В этой теме только вопросы по программированию и их возможное решение.
Вопрос у меня есть в программе некая битовая структура.
например
struct {
unsigned hi : 1;
unsigned di : 1;
unsigned lo : 1;
} foo;
Мне необходимо в процессе выполнения программы все биты сбросить в ноль. Возможно ли это сделать одной командой или прийдется каждый бит обнулять в отдельности?
struct {
unsigned hi : 1;
unsigned di : 1;
unsigned lo : 1;
void reset()
{
hi = 0;
di = 0;
lo = 0;
}
} foo;
foo.reset();
Не могу вспомнить что означает hi : 1 в с++ ?
Меня интересует вопрос эффективности кода, в этом случае я так понимаю, компилятор все равно (мне так кажется) составит три команды по обнулению битов. Хотя надо проверить. Ассемблером это можно сделать за одну команду. И меня интересует задача как это сказать компилятору, что бы он меня правильно понял.
В общем, протестирую и сообщу, как мой компилятор меня понял.
За ответ Спасибо.
И еще объясни плиз что будет если написать unsigned hi, и не указать тип (я думал к примеру unsigned int hi и если без int, то компилятор не съест), что-то я смотрю начал уже порядком подзабывать си...
Ответь на последний вопрос и тогда может еще что-то посоветую.
Цитата: Sasha от 27-07-2011, 11:19:16
Не могу вспомнить что означает hi : 1 в с++ ?
в моем вопросе это просто название битов.
Переформулирую, что делает оператор : ?
Вобще тема битовых операций в си прошла мимо меня.
Если бы это было с++ я бы взял массив bool переменных, так как они занимают в памяти именно 1 бит, но одним махом все не обнулишь. Для этого можно объявить к примеру переменную типа short или byte(я не помню есть ли такой тип в Си) и работать с его младшими 3 битами. Тогда при обнулении этой переменной обнуляться и все ее биты.
В моем примере
struct {
unsigned bi01 : 1;
unsigned bi02 : 1;
unsigned bi03 : 1;
} foo;
это битовая структура
обращаться к ней можно
foo.bi01=1; // устновить бит в 1;
foo.bi02=0; // сбросить бит в 1;
unsigned (то что значение не может быть отрицательным) bi01 (имя) : 1 (размерность в битах);
Не знаю. Кроме как работать с разрядами одной переменной я других простых вариантов решения твоего условия не вижу.
В моем случае компилятор ориентирован для работы со встроенными системами (PIC-контроллеры). В нем свои заморочки. Бит как тип имеется (булевые - нет). И еще приходится бороться оптимизатором (если он всклочен, а он должен быть включен), если он определяет, что бредовый код, просто выкидывает его. Сидишь и лупаешь глазами ???
Спасибо за ответ. Мне понравилось описание функции сброса. Я считаю оригинальное, попробую, сообщу, как это эффективно или нет.
Модификатор volatile защищает переменную от оптимизации.
Если не получится, вечером еще один вариант напишу.
Цитата: Catcatcat от 27-07-2011, 11:35:01
В моем примере
struct {
unsigned bi01 : 1;
unsigned bi02 : 1;
unsigned bi03 : 1;
} foo;
это битовая структура
обращаться к ней можно
foo.bi01=1; // устновить бит в 1;
foo.bi02=0; // сбросить бит в 1;
unsigned (то что значение не может быть отрицательным) bi01 (имя) : 1 (размерность в битах);
Однако очень часто структуры помогают экономить память благодаря использованию так называемых битовых полей. в этом случае объявление поля структуры имеет вид
объявление_поля: константное выражение
объявление_поля - объявление типа и имени поля структуры ;
константное_выражение определяет длину поля в битах
Цитата: Catcatcat от 27-07-2011, 11:08:14
Вопрос у меня есть в программе некая битовая структура.
например
struct {
unsigned hi : 1;
unsigned di : 1;
unsigned lo : 1;
} foo;
Мне необходимо в процессе выполнения программы все биты сбросить в ноль. Возможно ли это сделать одной командой или прийдется каждый бит обнулять в отдельности?
да по отдельности. цель структуры как раз сделать переменную, которая будет состоять из нескольких полей, к которм можно получать раздельный доступ. например
struct StudentStruct
{
*char Name;
*char ThirName;
int Age
}Student
врядли будет необходимость обнулять к примеру все эти поля...
Цитироватьврядли будет необходимость обнулять к примеру все эти поля...
вот эта "врядли2 и понадобилась
Цитата: Catcatcat от 27-07-2011, 20:39:44
Цитироватьврядли будет необходимость обнулять к примеру все эти поля...
вот эта "врядли2 и понадобилась
по отдельности обнули))
Язык Си.
Задача такая. Я написал функцию и хочу её использовать в других своих проектах. Как это правильно сформировать в библиотеку? Какой сам принцип объявления функций в заголовочных файлах .h?
Особых правил никаких. Если более менее новая среда разработки выбираешь проект типа библиотека заголовочных файлов и оно тебе сгенерит некоторые мета данные, которые не являются обязательными. Открой какой-нить h файл готовый и посмотри что там.
Рейтинг языков программирования
http://www.developers.org.ua/lenta/articles/programming-languages-rating-2011-07/
А что это за язык 1C?
от куда у него ноги ростут?
Это чтото типа языка для бухгалтеров. Я точно хз.
1C - это типа язык программирования для среды 1с-Бухгалтерия))
вчера со мной долго и нудно спорил один двоешник (он сам сказал что знает языки программирования плохо) из одного из Львовских вузов специальности "Управление автоматизированными системами"! Он сказал что знает язык "Делфи") я попытался объяснить что делфи - это не Язык а Среда программирования, в которой используется язык Object Pascal. Но он с пеной у рта доказывал, что у него книга на 1000 страниц, в которй написано что это язык)) Я уж засомневался, и решил проверить:
Delphi (Де́лфи, произносится /ˈdɛlˌfi/[1]) — среда программирования, в которой используется язык программирования Object Pascal.[2]
:) :) :) :) :)
Цитата: Jeka от 20-08-2011, 14:27:39
вчера со мной долго и нудно спорил один двоешник (он сам сказал что знает языки программирования плохо) из одного из Львовских вузов специальности "Управление автоматизированными системами"! Он сказал что знает язык "Делфи") я попытался объяснить что делфи - это не Язык а Среда программирования, в которой используется язык Object Pascal. Но он с пеной у рта доказывал, что у него книга на 1000 страниц, в которй написано что это язык)) Я уж засомневался, и решил проверить:
Delphi (Де́лфи, произносится /ˈdɛlˌfi/[1]) — среда программирования, в которой используется язык программирования Object Pascal.[2]
:) :) :) :) :)
Имел похожий разговор со своим одногруппником. Только тот понятливый, не спорил, а принял к сведению.
Одногруппники это куда не шло, а вот "проффесора" которые обучают..., мне такие попадались, этих тупорылых не переубедишь. >:(
Добрался я до USB. т.е. связь устройства с компьютером. Поставил абсолютно бесплатную Microsoft Visual Studio 2010.
Делаю первые шаги в программировании на Си для виндов.
устройство (для тестирования)
(http://lostpic.net/images/ec9f60c1d1829c6839a6a2175633369b.png)
программа
(http://lostpic.net/images/a2064d1e5ba6c273a59d6735f072f8f9.png)
Посоветуйте литературу по Microsoft Visual Studio 2010.
И если кто-то в нем шарит, расскажите на пальцах как скомпоновать файл, чтобы он был переносимым?
Если не ошибаюсь в абсюлютно бесплатной VS есть абсолютно ограниченный триал. Из книг я бы посоветовал у себя на ftp книгу Пахомова, она написана для VS 2008, но существенных различий нет. Правда в ней (как и во всех подобных книгах, которые я встречал) больше упор идет на работу с компонентами и т.д. Я щас не помню что там есть по настройке проектов и прочих тонкостях студии. Поройся у меня на фтп, если ничего не найдешь подходящего задавай конкретные вопросы мне в скайп или аську (лучше скайп)
На счет переносимым, то смотря что ты имеешь в виду.
Если я правильно предполагаю твои цели, то думаю тебе поможет изменить на верхней панеле комбобокс из debug на release. Тогда экзешник появится в папке с проектом каталог bin/release и он должен легко запускаться на любой винде. Если ты писал не на простом с++, а на .net, то естественно на компьютере пользователя должен быть установлен .net framework соответствующей версии.
20 бесплатных дополнений для Visual Studio (http://habrahabr.ru/blogs/vs/127425/)
вопрос
у меня есть буфер unsigned char INBuffer[65];
я хочу взять любой байт преобразовать в текст (получить число) и вывести в Label
temp02_lbl->Text = INBuffer[1];
каким боком его в текст преобразовать?
это для MVS2010 C++
В VS есть 2 вида с++: .net и классический (хотя тут я могу быть немного неточным).
1) В случае с первым все классы производятся от базового класса Object (это поймут те кто знаком с наследованием) у которого есть метод ToString, который соответственно доступен всем объектам. temp02_lbl->Text=INBuffer[1]->ToString(); примерно так.
Теперь варианты которые могут быть применимы в любом случае.
2) Конструктор класса String имеет перегрузку которая принимает тип char. Он принимает 2 параметра: сам символ, и сколько раз его нужно повторить (по крайней мере так в шарпе, я думаю в с++ будет так же, а если нет среда разработки все равно подскажет какие есть варианты). В таком случае все гдето так: temp02_lbl->Text=new String(INBuffer[1], 1)
3) Изврат с atoi, itoa - но это точно не есть правильное решение в данном случае
И мне опять не понятен смысл объявлять буфер как unsigned. Хотя если это опять какая-то примочка из мира микроконтроллеров то ладно.
Цитата: Sasha от 01-09-2011, 12:22:03
3) Изврат с atoi, itoa - но это точно не есть правильное решение в данном случае
Вопрос без подвоха: преобразовывать типы с помощью атой, итоа и других похожих штук - это честно-пречестно изврат?
Надо все учить с начала, а то толку с наскока не будет :-[
Цитата: Proydoha от 01-09-2011, 13:36:10
Цитата: Sasha от 01-09-2011, 12:22:03
3) Изврат с atoi, itoa - но это точно не есть правильное решение в данном случае
Вопрос без подвоха: преобразовывать типы с помощью атой, итоа и других похожих штук - это честно-пречестно изврат?
мне это функцию на 1 курсе советовала препод ))) делай выводы
Цитата: Proydoha от 01-09-2011, 13:36:10
Цитата: Sasha от 01-09-2011, 12:22:03
3) Изврат с atoi, itoa - но это точно не есть правильное решение в данном случае
Вопрос без подвоха: преобразовывать типы с помощью атой, итоа и других похожих штук - это честно-пречестно изврат?
Ну начнем с того что она просто не подходит для данной задачи, хотя извратиться с ее помощью можно было бы.
Продолжим тем что функции эти родом еще из Си, использование Сишных функций в С++, а уж тем более в .net вопрос сугубо личных религиозных убеждений. Конечно если функцие существует более новый аналог, то логично было бы юзать его, но и за использования устаревших функций уголовной ответственности никто не понесет. При неплохо знать возможные недостатки устаревших функций из-за которых они могли быть заменены.
Я помню на первом курсе не зная вобще библиотечных функций для символьно-цыфровых преобразований решал проблему добавляя и отнимая 30 от переменных. Вот это казалось бы на самом деле изврат. А на самом деле тяжело придумать метод, который бы работал быстрее)
Если кому непонятен принцип таких манипуляций, могу объяснить немного позже.
Цитата: Catcatcat от 01-09-2011, 14:21:48
Надо все учить с начала, а то толку с наскока не будет :-[
Если не получилось скинь мне солюшн, я вечером гляну как решить проблему и все объясню.
Цитата: Proydoha от 01-09-2011, 13:36:10
Цитата: Sasha от 01-09-2011, 12:22:03
3) Изврат с atoi, itoa - но это точно не есть правильное решение в данном случае
Вопрос без подвоха: преобразовывать типы с помощью атой, итоа и других похожих штук - это честно-пречестно изврат?
а че конкретно куда надо преобразовать то?))
Цитата: Jeka от 01-09-2011, 16:16:26
Цитата: Proydoha от 01-09-2011, 13:36:10
Цитата: Sasha от 01-09-2011, 12:22:03
3) Изврат с atoi, itoa - но это точно не есть правильное решение в данном случае
Вопрос без подвоха: преобразовывать типы с помощью атой, итоа и других похожих штук - это честно-пречестно изврат?
а че конкретно куда надо преобразовать то?))
a в i, а i в а)
Цитата: Jeka от 01-09-2011, 16:16:26
а че конкретно куда надо преобразовать то?))
Имел дела с С++ ровно два раза.
Преобразование типов в С++ показалось мне чем-то ужасающе странным.
столкнулся с проблемой! в языке c#. мне необходимо запомнить последнюю выбранную папку в компоненте FolderBrowserDialog, сохранить ее в файл и потом при загрузке формы установить этот путь в качестве по-умолчанию. последнее сделать мне не удается, поскольку свойство RootFolder может принимать лишь данные типа SpecialFolder - который в свою очередь является перечислением и состоит из такой фигни как -рабочий стол, мои документы, папки Program Files, System,,, MyPictures,MyMusic итд итп. как можно все-же установить в ручную путь который нужен мне - к примеру D:\Music ???
Если тебе нужно запомнить какой-то выбор пользователя (персональные настройки, опции и т. д.), то эти сведения принято записывать в системный реестр.
Если я правильно понял, ты хочешь сделать так, чтобы при открытии диалога выбора папки открывалась последняя папка, которая выбиралась, попробуй сериализовать объект класса диалога. Попробуй все же использовать ту форму что я в интернете нашел, может для нее это можно будет просто реализовать.
Дуже потрібна допомога з сі шарпу. на формі є компонент Chart, що послуговується для відображення графіків. я хочу додати точку (у двовимірному просторові) на цей графік. для цього послуговується метод chart1.Series[0].Points.AddXY(double,double); також на формі є компонент dataGridView для выдображення даних у формі таблиці. мені необхідно побудувати графік на основі даних з таблиці. отже я намагаюсь це зробити за допомогою такого рядку програмного коду:
chart1.Series[0].Points.AddXY((double)(dataGridView1[0,i].Value),(double)(dataGridView1[1,i].Value)); де i - поточний нумер рядка таблиці.
На етапі виконання генерується виняток "Заданное приведение является недопустимым." прошу допомоги
Вопрос знатокам C++
Имеются переменные
unsigned chat a;
unsigned Int b;
мне необходимо байт данных переменной, а вставить во второй байт переменной b
например,
b = 00000000 00000001;
a = 00010100;
в результате должно получиться b= 00010100 00000001;
Как это можно сделать в C++, можно ли использовать malloc и как?
Цитата: Catcatcat от 05-09-2011, 12:58:58
Вопрос знатокам C++
Имеются переменные
unsigned chat a;
unsigned Int b;
мне необходимо байт данных переменной, а вставить во второй байт переменной b
например,
b = 00000000 00000001;
a = 00010100;
в результате должно получиться b= 00010100 00000001;
Как это можно сделать в C++, можно ли использовать malloc и как?
пользуемся шеснацатиричными константами вида 0X или 0x
Мое видение (наверно есть и проще варианты).
для начала превратим в 1цы старший байт слова b. для этого сделаем операцию b|0xF.
теперь имеется b=11111111 0000001
теперь делаем дизъюнкцию b и A (где а становится старшим байтом слова A, а младшая часть - нули). то бишь b|A.
Младшая часть b при этом не меняется , а старшая часть превращается в a.
Цитата: Jeka от 03-09-2011, 11:12:26
Дуже потрібна допомога з сі шарпу. на формі є компонент Chart, що послуговується для відображення графіків. я хочу додати точку (у двовимірному просторові) на цей графік. для цього послуговується метод chart1.Series[0].Points.AddXY(double,double); також на формі є компонент dataGridView для выдображення даних у формі таблиці. мені необхідно побудувати графік на основі даних з таблиці. отже я намагаюсь це зробити за допомогою такого рядку програмного коду:
chart1.Series[0].Points.AddXY((double)(dataGridView1[0,i].Value),(double)(dataGridView1[1,i].Value)); де i - поточний нумер рядка таблиці.
На етапі виконання генерується виняток "Заданное приведение является недопустимым." прошу допомоги
))) сам додумался. оказывается по умолчанию при конвертации в формат double числовой разделитель для нашего региона это запятая, и пришлось указывать CultureInfo "en-USA" или чтото в этом роде
Цитироватьтеперь делаем дизъюнкцию b и A (где а становится старшим байтом слова A, а младшая часть - нули). то бишь b|A.
Младшая часть b при этом не меняется , а старшая часть превращается в a.
вот это я чето не понял, ты там еще руганулся как то... ;D
Я для себя так думаю, что то такое надо сделать
b=а<<8 | b;
сейчас посмотрю, будет работать или нет
Цитата: Catcatcat от 05-09-2011, 16:09:40
Цитироватьтеперь делаем дизъюнкцию b и A (где а становится старшим байтом слова A, а младшая часть - нули). то бишь b|A.
Младшая часть b при этом не меняется , а старшая часть превращается в a.
вот это я чето не понял, ты там еще руганулся как то... ;D
Я для себя так думаю, что то такое надо сделать
b=а<<8 | b;
сейчас посмотрю, будет работать или нет
я не ругнулся))) | - эт я дизъюнкцией назвал) ты может имел в виду
b=b<<8|a ???
если даже так то не получится)) сдвиг b на 8 бит влево приведет к тому что та часть, кторая должна заменится на а, у тебя по сути заменяется старшим байтом b, а младший становится нулями. затем в результате a|b у тебя поулчется черти что
работает.
я имел в виду, сдвинуть а на 8 бит в лево, чтобы данные перешли во второй байт и сложить с b. получилось, только а надо в int преобразовать, чтобы двигать было куда. Хотя для С++ это необязательно если b int все выражение будет вычисляться в "размерах" b
Цитата: Catcatcat от 05-09-2011, 16:39:40
работает.
я имел в виду, сдвинуть а на 8 бит в лево, чтобы данные перешли во второй байт и сложить с b. получилось, только а надо в int преобразовать, чтобы двигать было куда. Хотя для С++ это необязательно если b int все выражение будет вычисляться в "размерах" b
ну конечно это проще чем мое решение, но твое решение работает только когда старшая часть слова b состоит исключительно из нулей, а в условии ты об этом не сказал, и мое решение работает для любой старшей части b
$a = 1.1 - 1;
$b = 0.1;
if ($a == $b)
{
print "$a равно $b";
}
else
{
print "$a не равно $b";
}
Рузультат
0.1 не равно 0.1
Вот так вот)
Цитата: Sasha от 16-10-2011, 12:29:29
0.1 не равно 0.1
Вот так вот)
В чём подвох? : )
Я, если б такое увидел, сразу панически округлил бы оба числа до первого знака после запятой и посмотрел на результат.
Цитата: Proydoha от 16-10-2011, 13:52:01
Цитата: Sasha от 16-10-2011, 12:29:29
0.1 не равно 0.1
Вот так вот)
В чём подвох? : )
Я, если б такое увидел, сразу панически округлил бы оба числа до первого знака после запятой и посмотрел на результат.
И думаю это бы помогло) У меня не стоит ни аппач не IIS да и с PHP у меня не очень, так что если хочешь проверь что к чему)
Цитата: Proydoha от 16-10-2011, 13:52:01
Цитата: Sasha от 16-10-2011, 12:29:29
0.1 не равно 0.1
Вот так вот)
В чём подвох? : )
Я, если б такое увидел, сразу панически округлил бы оба числа до первого знака после запятой и посмотрел на результат.
приколы округления))) я такой фокус видел... там типа когда пишешь 0.1 то на самом деле это какой то 0.10000000..01
Цитата: Jeka от 20-10-2011, 19:35:05
Цитата: Proydoha от 16-10-2011, 13:52:01
Цитата: Sasha от 16-10-2011, 12:29:29
0.1 не равно 0.1
Вот так вот)
В чём подвох? : )
Я, если б такое увидел, сразу панически округлил бы оба числа до первого знака после запятой и посмотрел на результат.
приколы округления))) я такой фокус видел... там типа когда пишешь 0.1 то на самом деле это какой то 0.10000000..01
Саме так
встретилось такое выражение
crc = (unsigned char)(crc >> 8 ) | (crc << 8 );
где, unsigned int crc;
что делает (crc >> 8 ) | (crc << 8 ); это понятно,
а для чего перед этим влепили (unsigned char), что это означает?
я пробывал и без ЭТОГО работает одинаково. !?
явное приведение результата к типу unsigned char
Смысла особого наверно в данном случае в этом нет.
я понимаю, что (unsigned char)(crc >> 8 ) | (crc << 8 ); должно получиться 8 бит полож.? результат все равно 16 бит.
что с (unsigned char), что без.
правильно, потому что результат то все равно заносится в 4 байтную беззнаковою переменную. я ж говорю я хз какой в этом в данном случае смысл.
Пациент пришел к доктору - доктор ему дал 4 таблетки: по 2 таблетки 2ух видов и сказал принять 1 таблетку одного вида и вторую другого на завтрак и так же на ужин. пациент положил их в карман и они перемешались. внешне таблетки неразличимы - они на вкус цвет вес итд одинаковы. Как поступить пациенту чтобы выжить? если он выпьет 2 таблетки одного типа за раз - он умрет а если ничего не будет пить - умрет от болезни - мир жесток! Рисковать жизнью пациента нельзя - ответ должен тааким чтобы пациент однозначно остался жив - вероятности не подходят! как поступить пациенту?
кто первый правильно ответит - плюсик. Саша ты не участвуешь) без обид но твой ум программиста слишком силен для этого пусть подумают другие))
Легко – в условии задачи нет запрета, чтобы вернуться к доктору и взять новый комплект таблеток. :big081:
Цитата: Jeka от 16-11-2011, 00:39:40
Пациент пришел к доктору - доктор ему дал 4 таблетки: по 2 таблетки 2ух видов и сказал принять 1 таблетку одного вида и вторую другого на завтрак и так же на ужин. пациент положил их в карман и они перемешались. внешне таблетки неразличимы - они на вкус цвет вес итд одинаковы. Как поступить пациенту чтобы выжить? если он выпьет 2 таблетки одного типа за раз - он умрет а если ничего не будет пить - умрет от болезни - мир жесток! Рисковать жизнью пациента нельзя - ответ должен тааким чтобы пациент однозначно остался жив - вероятности не подходят! как поступить пациенту?
кто первый правильно ответит - плюсик. Саша ты не участвуешь) без обид но твой ум программиста слишком силен для этого пусть подумают другие))
Я хз :-[ Или здесь нужен реверс инжиниринг перемешивания таблеток?
В интернетах пишут что школьник решит эту задачу быстрее крутого математика, чувствую гдето ... .
Все, решение готово, но так как мне учавствовать почему-то запретили требую плюсик и поверить мне на слово что я решил правильно. Иначе забаню за то что написал пост не по теме)
Цитата: Catcatcat от 16-11-2011, 08:07:00
Легко – в условии задачи нет запрета, чтобы вернуться к доктору и взять новый комплект таблеток. :big081:
пациент бедный))) ладно решай задачу))) не балуйся)
Я думаю пора огласить правильный ответ.
а чего там, делишь таблетки на две части и съедаеш каждой по половинке
Цитата: Catcatcat от 18-11-2011, 19:20:44
а чего там, делишь таблетки на две части и съедаеш каждой по половинке
правильно. +1
Меня мучает вопрос: есть ли какие-то рекомендации по наименованию переменных/функций/объектов/...?
Использовать только заглавные буквы? Использовать ли заглавные буквы вообще? Использовать нижнее подчёркивание для создания "пробела" между словами или писать слитно, разделяя слова заглавными буквами?
Каждый раз именую как попало, каждый раз страдаю из-за этого психологически! : )
У каждого языка свои рекомендации, конечно многое общее для всех (типа называть переменные осмысленно, не делать переменные отличающиеся только регистром (правда к примеру в шарпе нормальное дело если название переменной и ее свойство отличаются только регистром первой буквы, а студия сама может сгенерить метод и ему переменную с таким же именем как название метода, что не есть хорошо) и т. д.
Отдельные рекомендации могут быть составлены внутри скажем команды проекта. К примеру начинать имена закрытых переменных метода с буквы 'm' или использовать вместо скажем рекомендуемого в языке Pascal style - Camel style.
Современные IDE даже позволяют устанавливать расширения, которые будут следить чтобы стилистика кода совпадала с выставленной в настройках.
Я часто вижу, что вместо использования функции возведения в степень для возведения в квадрат записывают просто число умноженное на себя же.
Или я вижу, что вместо использования tan(x) пишут sin(x)/cos(x).
Это имеет смысл?
Немного выигрываешь в быстродействии, немного проигрываешь в читабельности кода. По тому же принципу теоретически можно вместо x / 2 писать x << 1, результат один, работать (в теории) второй вариант будет быстрее, но зато об второй вариант в случае с сложным выражением можно сломать голову.
есть текстовый файл
0x1C,0x22,0x7F,0x22,0x1C, //
0x44,0x28,0x10,0x28,0x44, //
0x7C,0x40,0x40,0x40,0xFC, //
0x0C,0x10,0x10,0x10,0x7C, //
0x7C,0x40,0x7C,0x40,0x7C, //
0x7C,0x40,0x7C,0x40,0xFC, //
0x04,0x7C,0x50,0x50,0x20, //
0x7C,0x50,0x20,0x00,0x7C, //
0x7C,0x50,0x50,0x20,0x00, //
0x28,0x44,0x54,0x54,0x38, //
0x7C,0x10,0x38,0x44,0x38, //
0x08,0x54,0x34,0x14,0x7C, //
надо все байты зеркально развернуть
например 0x54
двоичный 01010100
после разворта 00101010
шестнадцатеричный 0x2A
есть какие то проги чтобы это на халяву и быстро сделать?
Attached
Большое спасибо за помощь, классно быть специалистом-программистом. ;D это круто. :big21:
Вопрос к Sasha
есть такое определение переменной
например
typedef unsigned long LBA;
typedef - какой её смысл?
Директива препроцессора позволяющая задать псевдоним типу. Погугли примеры станет ппонятно.
спасибо уже в принципе понял