<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: куда пихать byte,word,dword ?</title>
    <link>https://mobile.opennet.me/openforum/vsluhforumID9/7362.html</link>
    <description>Я начинающий :) пишу сетевую программку для некоторого протокола.&lt;br&gt;Проблема встала куда запихать пакет, пакет примерно выглядит так:&lt;br&gt;тип&lt;br&gt;byte type&lt;br&gt;word head&lt;br&gt;dword body&lt;br&gt;И того пакет 6 байт.&lt;br&gt;&lt;br&gt;пока делаю так, пакет получаю в буффер char buff&#091;&#093;;&lt;br&gt;а потом, когда надо анализировать, например посмотреть внутренности делаю так:&lt;br&gt;cout &amp;lt;&amp;lt; &quot;Type: &quot; &amp;lt;&amp;lt; buff&#091;0&#093; &amp;lt;&amp;lt; endl;&lt;br&gt;cout &amp;lt;&amp;lt; &quot;Head: &quot; &amp;lt;&amp;lt; (int)buff&#091;1&#093;*10+buff&#091;2&#093; &amp;lt;&amp;lt; endl;&lt;br&gt;cout &amp;lt;&amp;lt; &quot;Body: &quot; &amp;lt;&amp;lt; buff&#091;3&#093;*100+buff&#091;4&#093;*100+buff&#091;5&#093;*10+buff&#091;6&#093; &amp;lt;&amp;lt; endl;&lt;br&gt;&lt;br&gt;1. На сколько это корректно? &lt;br&gt;2. Может есть способы поэлегантнее доставать данные из пакета например body? &lt;br&gt;3. Есть ли какие нибудь стандартные типы(C/C++) для хранения байта, слова, двойного слова? &lt;br&gt;&lt;br&gt;&lt;br&gt;</description>

<item>
    <title>куда пихать byte,word,dword ? (Olle)</title>
    <link>https://mobile.opennet.me/openforum/vsluhforumID9/7362.html#24</link>
    <pubDate>Tue, 08 Sep 2009 11:21:02 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt;unsigned char buff&#091;7&#093;; &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;buff&#091;0&#093; = byte_var &amp; 0xff; &lt;br&gt;&amp;gt;buff&#091;1&#093; = word_var &amp; 0xff; &lt;br&gt;&amp;gt;buff&#091;2&#093; = (word_var &amp;lt;&amp;lt; 8) &amp; 0xff; &lt;br&gt;&amp;gt;buff&#091;3&#093; = dword_var &amp; 0xff; &lt;br&gt;&amp;gt;buff&#091;4&#093; = (dword_var &amp;lt;&amp;lt; 8) &amp; 0xff; &lt;br&gt;&amp;gt;buff&#091;5&#093; = (dword_var &amp;lt;&amp;lt; 16) &amp; 0xff; &lt;br&gt;&amp;gt;buff&#091;6&#093; = (dword_var &amp;lt;&amp;lt; 24) &amp; 0xff; &lt;br&gt;&amp;gt;&lt;br&gt;&lt;br&gt;Скорее всего операция сдвига не &amp;lt;&amp;lt; , а &amp;gt;&amp;gt; &lt;br&gt;&lt;br&gt;unsigned char buff&#091;7&#093;;&lt;br&gt;&lt;br&gt;buff&#091;0&#093; = byte_var &amp; 0xff;&lt;br&gt;buff&#091;1&#093; = word_var &amp; 0xff;&lt;br&gt;buff&#091;2&#093; = (word_var &amp;gt;&amp;gt; 8) &amp; 0xff;&lt;br&gt;buff&#091;3&#093; = dword_var &amp; 0xff;&lt;br&gt;buff&#091;4&#093; = (dword_var &amp;gt;&amp;gt; 8) &amp; 0xff;&lt;br&gt;buff&#091;5&#093; = (dword_var &amp;gt;&amp;gt; 16) &amp; 0xff;&lt;br&gt;buff&#091;6&#093; = (dword_var &amp;gt;&amp;gt; 24) &amp; 0xff;&lt;br&gt;</description>
</item>

<item>
    <title>куда пихать byte,word,dword ? (NuINu)</title>
    <link>https://mobile.opennet.me/openforum/vsluhforumID9/7362.html#23</link>
    <pubDate>Fri, 23 May 2008 05:28:32 GMT</pubDate>
    <description>&amp;gt;И что гуглить? Может лично ваши измышления на других сайтах, вы считаете &lt;br&gt;&amp;gt;себя настолько популярным и авторитетным источником? Между C и C++ разница &lt;br&gt;&amp;gt;есть, но вот с точки зрения _вашей_ логики и то и &lt;br&gt;&amp;gt;другое высокоуровневый ассемблер. &lt;br&gt;&lt;br&gt;предлагаю прекратить бесполезный спор и не кормить троля, если человек(извитите вы не представились) утверждает что Си это ассемблер, то предлагаю не оспаривать его право иметь свое мнение. вероятно мы просто учились в разных школах.&lt;br&gt;</description>
</item>

<item>
    <title>куда пихать byte,word,dword ? (angra)</title>
    <link>https://mobile.opennet.me/openforum/vsluhforumID9/7362.html#22</link>
    <pubDate>Thu, 22 May 2008 21:16:20 GMT</pubDate>
    <description>И что гуглить? Может лично ваши измышления на других сайтах, вы считаете себя настолько популярным и авторитетным источником? Между C и C++ разница есть, но вот с точки зрения _вашей_ логики и то и другое высокоуровневый ассемблер. &lt;br&gt;</description>
</item>

<item>
    <title>куда пихать byte,word,dword ? (Аноним)</title>
    <link>https://mobile.opennet.me/openforum/vsluhforumID9/7362.html#21</link>
    <pubDate>Thu, 22 May 2008 17:40:44 GMT</pubDate>
    <description>&amp;gt; Используя вашу логику&lt;br&gt;&lt;br&gt;Это не моя логика.&lt;br&gt;&lt;br&gt;&amp;gt; любой компилируемый язык это высокоуровневый ассемблер.&lt;br&gt;&lt;br&gt;Не любой. Между C и C++ есть, например, принцыпиальная разница. В общем google в руки, честно не охото 100 раз говоренное повторять.&lt;br&gt;</description>
</item>

<item>
    <title>куда пихать byte,word,dword ? (angra)</title>
    <link>https://mobile.opennet.me/openforum/vsluhforumID9/7362.html#20</link>
    <pubDate>Thu, 22 May 2008 08:54:04 GMT</pubDate>
    <description>Используя вашу логику любой компилируемый язык это высокоуровневый ассемблер. Если вам так удобно обобщать, то это ваше право, в конце концов кому-то вообще удобно нас всех называть обобщать под названием &quot;компутерщик&quot;.&lt;br&gt;</description>
</item>

<item>
    <title>куда пихать byte,word,dword ? (Аноним)</title>
    <link>https://mobile.opennet.me/openforum/vsluhforumID9/7362.html#19</link>
    <pubDate>Wed, 21 May 2008 17:24:26 GMT</pubDate>
    <description>&amp;gt;Лингвистическое. Другой уровнень абстракции. Полное абстрагирование от архитектуры&lt;br&gt;&amp;gt; физической реализации процессора целевой системы. нет таких понятий как регистр,&lt;br&gt;&amp;gt; стек. хотя понятия памяти&lt;br&gt;&lt;br&gt;Повторяю, на макроассемблере можно сделать то же самое. С переменными, функциями, циклами и управляющими конструкциями, вообще не показывая никаких регистров и ассемблерных команд программисту.&lt;br&gt;&lt;br&gt;&amp;gt; ну да, охота ваять собственный язык? &lt;br&gt;&lt;br&gt;Речь идет об устройстве существующих языков.&lt;br&gt;&lt;br&gt;&amp;gt; Макросы не переносимы. зачастую невозможно создать&lt;br&gt;&lt;br&gt;Это решается введением стандарта как в C&lt;br&gt;&lt;br&gt;&amp;gt; рутинных операций, при этом ни вкоем случае не создается архитектурно независимый код.&lt;br&gt;&lt;br&gt;Повторяю, сделай макросы для всех поддерживаемых архитектур с одним и тем же интерфейсом. Будешь на таком макроассемблере писать кроссплатформенный код. Или ты думаешь gcc магически-автоматически генерирует код под любые архитектуры?&lt;br&gt;&lt;br&gt;&amp;gt; И самое главное, глупо программировать на ассемблере не используя архитектурных&lt;br&gt;&amp;gt; особенностей процессора&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>куда пихать byte,word,dword ? (NuINu)</title>
    <link>https://mobile.opennet.me/openforum/vsluhforumID9/7362.html#18</link>
    <pubDate>Mon, 19 May 2008 06:11:35 GMT</pubDate>
    <description>&amp;gt;&amp;gt;ну а я не согласен :) Ассемблер высокоуровневый это вот макроассемблер.&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;Назовешь принцыпиальное отличие? &lt;br&gt;&amp;gt;&lt;br&gt;&lt;br&gt;Лингвистическое. Другой уровнень абстракции. Полное абстрагирование от архитектуры физической реализации процессора целевой системы. нет таких понятий как регистр, стек. хотя понятия памяти, и адресов памяти осталось. Т.е архитектура системы с которой работает программист на си, представляет собой обобщенный вычислитель не имеющий регистров, только переменные в памяти.&lt;br&gt;&lt;br&gt;&amp;gt;Макроассемблер + набор одинаковых макросов под разные архитектуры - вот тебе &amp;gt;кроссплатформенность. &lt;br&gt;&lt;br&gt;ну да, охота ваять собственный язык?&lt;br&gt;и потом для каждого ассемблера макроассемблер свой, зачастую не позволяющий воспользоваться конструкциями применяющимися в другом макроассемблере. т.е Макросы не переносимы. зачастую невозможно создать полностью аналогичный интерфес.&lt;br&gt;да и потом макроассемблер лишь облегчает программирование на ассеблере, избавляя от множества рутинных операций, при этом ни вкоем случае не создается арх</description>
</item>

<item>
    <title>куда пихать byte,word,dword ? (аноним)</title>
    <link>https://mobile.opennet.me/openforum/vsluhforumID9/7362.html#17</link>
    <pubDate>Fri, 16 May 2008 23:04:09 GMT</pubDate>
    <description>ну вот сразу и прям так. просто предложил...&lt;br&gt;</description>
</item>

<item>
    <title>куда пихать byte,word,dword ? (Аноним)</title>
    <link>https://mobile.opennet.me/openforum/vsluhforumID9/7362.html#16</link>
    <pubDate>Fri, 16 May 2008 15:19:59 GMT</pubDate>
    <description>&amp;gt;ну а я не согласен :) Ассемблер высокоуровневый это вот макроассемблер.&lt;br&gt;&lt;br&gt;Назовешь принцыпиальное отличие?&lt;br&gt;&lt;br&gt;Макроассемблер + набор одинаковых макросов под разные архитектуры - вот тебе кроссплатформенность. После можно и оптимизатор прикрутить. Вот тебе и C.&lt;br&gt;&lt;br&gt;А на C можно отключить оптимизацию и напихать в функции ассемблерных вставок - вот тебе непортабельный ассемблер.&lt;br&gt;</description>
</item>

</channel>
</rss>
