kumle 0 21 января, 2011 Опубликовано 21 января, 2011 · Жалоба Кто знает как указать двоичную константу? 0b00000000 не проходит. В описании что-то не нашел. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 21 января, 2011 Опубликовано 21 января, 2011 · Жалоба Нету в 'C' двоичных констант. Можно задефайнить свои, но ума не приложу, зачем это может понадобиться. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 21 января, 2011 Опубликовано 21 января, 2011 · Жалоба В языке Си нет двоичного представления величин. Используйте макросы, если это вам так необходимо. Погуглите "макросы Аскольда Волкова" или что-то подобное. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kumle 0 21 января, 2011 Опубликовано 21 января, 2011 · Жалоба Нету в 'C' двоичных констант. Можно задефайнить свои, но ума не приложу, зачем это может понадобиться. Привык после работы в MPLAB на HITECH PICC. там можно было. Иногда мне для наглядности просто удобнее битовые маски так задавать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 21 января, 2011 Опубликовано 21 января, 2011 · Жалоба Подсмотрел когда-то здесь на сайте, и слегка изменил (а четверичный формат - добавил) /* Макро для использования двоичного формата чисел */ #define _BITSET(bits) \ ((uint16_t) (\ (bits % 010) | \ (bits / 010 % 010) << 1 | \ (bits / 0100 % 010) << 2 | \ (bits / 01000 % 010) << 3 | \ (bits / 010000 % 010) << 4 | \ (bits / 0100000 % 010) << 5 | \ (bits / 01000000 % 010) << 6 | \ (bits / 010000000 % 010) << 7 | \ (bits / 0100000000 % 010) << 8 | \ (bits / 01000000000 % 010) << 9 | \ (bits / 010000000000 % 010) << 10 | \ (bits / 0100000000000 % 010) << 11 | \ (bits / 01000000000000 % 010) << 12 | \ (bits / 010000000000000 % 010) << 13 | \ (bits / 0100000000000000 % 010) << 14 | \ (bits / 01000000000000000 % 010) << 15)) #define BIN(bits) _BITSET(0##bits) /* Макро для использования четверичного формата чисел */ #define _PAIRSET(digits) \ ((uint16_t) (\ (digits % 010) | \ (digits / 010 % 010) << 2 | \ (digits / 0100 % 010) << 4 | \ (digits / 01000 % 010) << 6 | \ (digits / 010000 % 010) << 8 | \ (digits / 0100000 % 010) << 10 | \ (digits / 01000000 % 010) << 12 | \ (digits / 010000000 % 010) << 14)) #define QUAD(digits) _PAIRSET(0##digits) Мне это понадобилось, когда свой шрифт создавал - очень удобно "рисовать" буквы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demiurg_spb 0 21 января, 2011 Опубликовано 21 января, 2011 · Жалоба Мне это понадобилось, когда свой шрифт создавал - очень удобно "рисовать" буквы. Гораздо нагляднее рисовать не только буквы но и картинки так: #define ________ 0U #define _______X 1U #define ______X_ 2U #define ______XX 3U #define _____X__ 4U #define _____X_X 5U ... #define XXXXXXX_ 254U #define XXXXXXXX 255U Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 21 января, 2011 Опубликовано 21 января, 2011 · Жалоба Гораздо нагляднее рисовать не только буквы но и картинки так... Приму к сведению. У меня тоже было неплохо (еще свой простенький вариант субпиксельного сглаживания сделал): // 0x30 0 QUAD(01333000), QUAD(03001200), QUAD(12000300), QUAD(12000300), QUAD(12000300), QUAD(12000300), QUAD(03001200), QUAD(01333000), QUAD(00000000), QUAD(00000000), дефайнами я столько вариантов не закодировал бы, места б в файле не хватило :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IVX 0 31 января, 2011 Опубликовано 31 января, 2011 · Жалоба В языке Си нет двоичного представления величин. Используйте макросы, если это вам так необходимо. Погуглите "макросы Аскольда Волкова" или что-то подобное. в KEil C впрочем есть Binary: Suffix Y or y Example: 11111111Y Понадобиться вполне может, авторски подрихтовать "знакогенератор" стандартного LCD (вот прямщас рисую), например, куда как нагляднее чем в HEX. :smile3046: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 31 января, 2011 Опубликовано 31 января, 2011 · Жалоба в KEil C впрочем есть Binary: Suffix Y or y Example: 11111111Y Не для программы на C, а для симулятора. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IVX 0 31 января, 2011 Опубликовано 31 января, 2011 · Жалоба о как, у меня собственно и не получилось тоже, провозился и плюнул, забив всё хексами.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
scifi 1 31 января, 2011 Опубликовано 31 января, 2011 · Жалоба У меня тоже было неплохо (еще свой простенький вариант субпиксельного сглаживания сделал): Вообще, субпиксельное сглаживание - это другое. А это просто сглаживание с применением оттенков серого. Для него рекомендую утилиту ttf2pcx. Она экспортирует системные шрифты в растровое изображение в формате PCX, при этом умеет делать и оттенки серого. В дальнейшем этот PCX-файл легко парсится. Собственно, что я и сделал. Результат - загляденье. Если интересна парсилка - выложу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 31 января, 2011 Опубликовано 31 января, 2011 · Жалоба Вообще, субпиксельное сглаживание - это другое. А это просто сглаживание с применением оттенков серого. Для него рекомендую утилиту ttf2pcx. Она экспортирует системные шрифты в растровое изображение в формате PCX, при этом умеет делать и оттенки серого. В дальнейшем этот PCX-файл легко парсится. Собственно, что я и сделал. Результат - загляденье. Если интересна парсилка - выложу. Нет, у меня сдвиг по RGB - субпискельный. Примерно, как под цифрой 7 на рисунке по ссылке: http://ru.wikipedia.org/wiki/ClearType Это уже в самой программе рисования символов делается. Только, немножко однобокий сдвиг получается, неполный набор, для простоты. Только rgb, rgB, RGb, RGB (маленькие буквы - выключен субпиксел, большие - включен). И - никакой коррекции яркости. Выложите парсилку, отчего ж не посмотреть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
scifi 1 31 января, 2011 Опубликовано 31 января, 2011 · Жалоба Нет, у меня сдвиг по RGB - субпискельный. Примерно, как под цифрой 7 на рисунке по ссылке: http://ru.wikipedia.org/wiki/ClearType Пардонте, обознался :-) Выложите парсилку, отчего ж не посмотреть. Выкладываю. Там, правда, без комментариев, но всё равно не слишком безобразно. Формат шрифта: каждый пиксель для шрифта кодируется в 4 бита (т.е. 2 пикселя на байт), 8 оттенков серого, старший бит используется как флаг для RLE (сворачивание идентичных последовательных пикселей). pcx2font3bpp.txt Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться