- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
// Преобразует BCD формат в число
private static int BCDToInt(byte bIn)
{
return ((((bIn / 0x10) * 10) + bIn) - ((bIn / 0x10) * 0x10));
}
// Преобразует число в BCD формат
private static byte IntToBCD(int value)
{
value -= (value / 100) * 100;
byte bTH = (byte)(value / 10);
byte bTL = (byte)(value - (bTH * 10));
return (byte)(bTL + ((byte)(bTH << 4)));
}
навеяло сложными запутывающими большими и маленькими индейцами для элитных программистов
референс-код от партнеров для конверсии binary-coded decimal вперёд и взад
чтобы как бы верно срослось между ихним с# и нашим сраным с++
bormand 29.05.2013 18:50 # +1
defecate-plusplus 29.05.2013 18:52 # +2
были домыслы, что оператор % был не с самой первой версии языка, но это сложно поверить
если че, "/ 0x10" и "% 0x10" хоть, возможно, заменятся на нужное, но выглядят кхм
bormand 29.05.2013 18:58 # 0
bormand 29.05.2013 19:09 # +3
TarasB 31.05.2013 10:38 # +1
defecate-plusplus 31.05.2013 10:51 # +2
хочешь кросс-платформенный ассемблер, поддерживающий всё что можно?
это дело компилятора и его оптимизации сишного кода под заданную платформу - но на самом деле я сейчас так и не заставил g++ из кода, приведенного мной выше, соптимизироваться в aam/aad
TarasB 31.05.2013 10:53 # 0
defecate-plusplus 31.05.2013 10:55 # +1
даже не узкое место, чтобы так заморачиваться
ну как вариант еще gcc.godbolt.org не умеет в -m32, чтобы посмотреть выхлоп конкретно под x86 - генерит только x86-64, так что может и умеет, только это не просто проверить теперь
tirinox 29.05.2013 20:24 # 0
absolut 31.05.2013 05:49 # +2
wvxvw 31.05.2013 11:18 # +2
Наверное в этом заключается суть проприетарного энтерпрайза...
defecate-plusplus 31.05.2013 11:32 # +1
зачем тогда такое партнерство - ставить палки друг другу в колеса
особенно когда обе стороны заинтересованы, чтобы их системы как можно лучше взаимодействовали с наименьшими проблемами
bormand 31.05.2013 12:10 # +3
defecate-plusplus 31.05.2013 12:14 # +2
просто я тогда проебал момент в описании, что в кое-каком поле они захотели bcd вместо обычного бинарного, ну и при первом совместном тестировании это всплыло
правится за 5 минут, но они не постеснялись прислать мне вот такую "подсказку", подняли настроение
может, wvxvw и прав, может они хороший код взяли и ухудшили, но, если честно, думаю всё несколько прозаичней :)
wvxvw 31.05.2013 13:39 # +1
В чем заключается мое вынужденное использование: проект написан на TypeScript и WE можно использовать для сборки.
Но, у WE нету вообще никаких API коммандной строки и интегрироваться с MSBuild он не может. Собрать проект только MSBuildом - отнюдь не сложно (я даже так и сделал, когда выяснил, что WE этого не умеет). Но, пришлось вернуть WE. Номинальная причнина - потенциальным пользователям MSVS этот инструмент привычнее.
Результат - я забил на MSBuild / WE и билдю SCons'ом, из него же генерирую .csproj для начальста, чтобы отстали. Но мой наследник SCons билд не получит, а получит говно, с которым и будет мучатся...
wvxvw 31.05.2013 13:30 # +2
guest 15.04.2017 03:47 # 0
real_escape_string 10.03.2019 22:47 # 0
KGeist 11.03.2019 00:39 # 0
real_escape_string 11.03.2019 00:48 # 0
guest8 11.07.2020 03:51 # −999