<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Trinity</title>
    <description>The latest articles on DEV Community by Trinity (@hwangs12).</description>
    <link>https://dev.to/hwangs12</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F670429%2F8d699b05-85e5-4883-bc31-92429f61f2a3.jpg</url>
      <title>DEV Community: Trinity</title>
      <link>https://dev.to/hwangs12</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hwangs12"/>
    <language>en</language>
    <item>
      <title>Dynamically allocating memories for matrix in c</title>
      <dc:creator>Trinity</dc:creator>
      <pubDate>Tue, 09 Jun 2026 03:28:09 +0000</pubDate>
      <link>https://dev.to/hwangs12/dynamically-allocating-memories-for-matrix-in-c-4pof</link>
      <guid>https://dev.to/hwangs12/dynamically-allocating-memories-for-matrix-in-c-4pof</guid>
      <description>&lt;p&gt;If you want to create mxn matrix with malloc but not sure how, here's the way.&lt;/p&gt;

&lt;p&gt;First of all, &lt;em&gt;mxn&lt;/em&gt; matrix is m rows and n columns.&lt;/p&gt;

&lt;p&gt;We can use double pointers to do this. &lt;/p&gt;

&lt;p&gt;First you create memory space for m rows.&lt;/p&gt;

&lt;p&gt;Then, you create memory space for n columns.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="o"&gt;**&lt;/span&gt; &lt;span class="n"&gt;mat&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 

&lt;span class="n"&gt;mat&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;malloc&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;m&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="nf"&gt;sizeof&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt; &lt;span class="c1"&gt;// we are creating memory space for int pointers. This basically means 'we want to create memory space that can hold memory address that can hold array of columns&lt;/span&gt;

&lt;span class="c1"&gt;// each of mat at i'th index is the memory address for each row&lt;/span&gt;
&lt;span class="c1"&gt;// so we need to allocate memories for each row now&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;m&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;mat&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;malloc&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="k"&gt;sizeof&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Voila, we are done!&lt;/p&gt;

</description>
      <category>c</category>
    </item>
    <item>
      <title>How to create static library in c</title>
      <dc:creator>Trinity</dc:creator>
      <pubDate>Sat, 06 Jun 2026 16:51:33 +0000</pubDate>
      <link>https://dev.to/hwangs12/how-to-create-static-library-in-c-53i</link>
      <guid>https://dev.to/hwangs12/how-to-create-static-library-in-c-53i</guid>
      <description>&lt;p&gt;Summarizing &lt;a href="https://www.youtube.com/watch?v=t5TfYRRHG04&amp;amp;t=84s" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=t5TfYRRHG04&amp;amp;t=84s&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create a source file (.c) and header file (.h)&lt;/li&gt;
&lt;li&gt;Write function in source file and prototype in header file&lt;/li&gt;
&lt;li&gt;Create &lt;code&gt;lib&lt;/code&gt; and &lt;code&gt;include&lt;/code&gt; directory&lt;/li&gt;
&lt;li&gt;&lt;code&gt;gcc -c &amp;lt;source&amp;gt;.c&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ar cr lib&amp;lt;name&amp;gt;.a &amp;lt;source&amp;gt;.o&lt;/code&gt;. Defines library name output and source object file&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ar t lib&amp;lt;name&amp;gt;.a&lt;/code&gt; to find out what function names are included &lt;/li&gt;
&lt;li&gt;move the &lt;code&gt;lib&amp;lt;name&amp;gt;.a&lt;/code&gt; file to &lt;code&gt;lib&lt;/code&gt; folder&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;gcc &amp;lt;source&amp;gt;.c -l&amp;lt;name&amp;gt; -L &amp;lt;library_folder_name&amp;gt; -o &amp;lt;output_file_name&amp;gt; -I &amp;lt;include_folder_name&amp;gt;&lt;/code&gt;. If you created &lt;code&gt;lib&lt;/code&gt; and &lt;code&gt;include&lt;/code&gt; directory that's where they should go under librar_folder_name and include_folder_name. &lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>c</category>
    </item>
    <item>
      <title>OOP in C</title>
      <dc:creator>Trinity</dc:creator>
      <pubDate>Fri, 05 Jun 2026 18:59:18 +0000</pubDate>
      <link>https://dev.to/hwangs12/oop-in-c-4c9i</link>
      <guid>https://dev.to/hwangs12/oop-in-c-4c9i</guid>
      <description>&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="cp"&gt;#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;stdio.h&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;string.h&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;stdlib.h&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
&lt;/span&gt;&lt;span class="k"&gt;typedef&lt;/span&gt; &lt;span class="k"&gt;struct&lt;/span&gt; &lt;span class="n"&gt;Bank&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;struct&lt;/span&gt; &lt;span class="n"&gt;Bank&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;this&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;num_customers&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;rating&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kt"&gt;char&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;address&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kt"&gt;float&lt;/span&gt; &lt;span class="n"&gt;reserve_amt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kt"&gt;void&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;deposit&lt;/span&gt;&lt;span class="p"&gt;)(&lt;/span&gt;&lt;span class="k"&gt;struct&lt;/span&gt; &lt;span class="n"&gt;Bank&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;float&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="kt"&gt;void&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;withdraw&lt;/span&gt;&lt;span class="p"&gt;)(&lt;/span&gt;&lt;span class="k"&gt;struct&lt;/span&gt; &lt;span class="n"&gt;Bank&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="kt"&gt;float&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="kt"&gt;void&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;change_address&lt;/span&gt;&lt;span class="p"&gt;)(&lt;/span&gt;&lt;span class="k"&gt;struct&lt;/span&gt; &lt;span class="n"&gt;Bank&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;char&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="kt"&gt;void&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;customer_enter&lt;/span&gt;&lt;span class="p"&gt;)(&lt;/span&gt;&lt;span class="k"&gt;struct&lt;/span&gt; &lt;span class="n"&gt;Bank&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="kt"&gt;void&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;customer_exit&lt;/span&gt;&lt;span class="p"&gt;)(&lt;/span&gt;&lt;span class="k"&gt;struct&lt;/span&gt; &lt;span class="n"&gt;Bank&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="n"&gt;Bank&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;deposit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;struct&lt;/span&gt; &lt;span class="n"&gt;Bank&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;bank&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;float&lt;/span&gt; &lt;span class="n"&gt;amt&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;withdraw&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;struct&lt;/span&gt; &lt;span class="n"&gt;Bank&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;bank&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;float&lt;/span&gt; &lt;span class="n"&gt;amt&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;customer_enter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;struct&lt;/span&gt; &lt;span class="n"&gt;Bank&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;bank&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;customer_exit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;struct&lt;/span&gt; &lt;span class="n"&gt;Bank&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;bank&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="n"&gt;Bank&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="nf"&gt;create_bank&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;char&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;address&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;Bank&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;bank&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;create_bank&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"2424 Blackwater Street"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="n"&gt;bank&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;deposit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;bank&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;15&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="n"&gt;bank&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;withdraw&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;bank&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;13&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"The total is %f&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;bank&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;reserve_amt&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;Bank&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="nf"&gt;create_bank&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;char&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;address&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;Bank&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;calloc&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;sizeof&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Bank&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
    &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;this&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;num_customers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;rating&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;address&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;calloc&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;strlen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;address&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="n"&gt;memcpy&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;address&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;address&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;strlen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;address&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;reserve_amt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;withdraw&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;withdraw&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;deposit&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;deposit&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;customer_enter&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;customer_enter&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;customer_exit&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;customer_exit&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;deposit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;struct&lt;/span&gt; &lt;span class="n"&gt;Bank&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;bank&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;float&lt;/span&gt; &lt;span class="n"&gt;amt&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;bank&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;reserve_amt&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="n"&gt;amt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;withdraw&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;struct&lt;/span&gt; &lt;span class="n"&gt;Bank&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;bank&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;float&lt;/span&gt; &lt;span class="n"&gt;amt&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;bank&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;reserve_amt&lt;/span&gt; &lt;span class="o"&gt;-=&lt;/span&gt; &lt;span class="n"&gt;amt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;customer_enter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;struct&lt;/span&gt; &lt;span class="n"&gt;Bank&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;bank&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;customer_exit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;struct&lt;/span&gt; &lt;span class="n"&gt;Bank&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;bank&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>c</category>
      <category>computerscience</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Matrix Manipulation in 3d Graphics</title>
      <dc:creator>Trinity</dc:creator>
      <pubDate>Fri, 05 Jun 2026 16:24:22 +0000</pubDate>
      <link>https://dev.to/hwangs12/matrix-manipulation-in-3d-graphics-36lf</link>
      <guid>https://dev.to/hwangs12/matrix-manipulation-in-3d-graphics-36lf</guid>
      <description>&lt;h3&gt;
  
  
  Translation
&lt;/h3&gt;

&lt;h3&gt;
  
  
  Rotation
&lt;/h3&gt;

&lt;h3&gt;
  
  
  Scale
&lt;/h3&gt;

&lt;p&gt;

&lt;/p&gt;
&lt;div class="katex-element"&gt;
  &lt;span class="katex-display"&gt;&lt;span class="katex"&gt;&lt;span class="katex-mathml"&gt;&lt;/span&gt;&lt;span class="katex-html"&gt;&lt;span class="base"&gt;&lt;span class="strut"&gt;&lt;/span&gt;&lt;span class="mord text"&gt;&lt;span class="mord"&gt;Translate&lt;/span&gt;&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mbin"&gt;⋅&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="base"&gt;&lt;span class="strut"&gt;&lt;/span&gt;&lt;span class="mord text"&gt;&lt;span class="mord"&gt;Rotate&lt;/span&gt;&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mbin"&gt;⋅&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="base"&gt;&lt;span class="strut"&gt;&lt;/span&gt;&lt;span class="mord text"&gt;&lt;span class="mord"&gt;Scale&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="mspace newline"&gt;&lt;/span&gt;&lt;span class="base"&gt;&lt;span class="strut"&gt;&lt;/span&gt;&lt;span class="minner"&gt;&lt;span class="mopen"&gt;&lt;span class="delimsizing mult"&gt;&lt;span class="vlist-t vlist-t2"&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="delimsizinginner delim-size4"&gt;&lt;span&gt;⎣&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="delimsizinginner delim-size4"&gt;&lt;span&gt;⎡&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-s"&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mtable"&gt;&lt;span class="col-align-c"&gt;&lt;span class="vlist-t vlist-t2"&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-s"&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="arraycolsep"&gt;&lt;/span&gt;&lt;span class="arraycolsep"&gt;&lt;/span&gt;&lt;span class="col-align-c"&gt;&lt;span class="vlist-t vlist-t2"&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-s"&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="arraycolsep"&gt;&lt;/span&gt;&lt;span class="arraycolsep"&gt;&lt;/span&gt;&lt;span class="col-align-c"&gt;&lt;span class="vlist-t vlist-t2"&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-s"&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="arraycolsep"&gt;&lt;/span&gt;&lt;span class="arraycolsep"&gt;&lt;/span&gt;&lt;span class="col-align-c"&gt;&lt;span class="vlist-t vlist-t2"&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;5&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;3&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;2&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-s"&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="mclose"&gt;&lt;span class="delimsizing mult"&gt;&lt;span class="vlist-t vlist-t2"&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="delimsizinginner delim-size4"&gt;&lt;span&gt;⎦&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="delimsizinginner delim-size4"&gt;&lt;span&gt;⎤&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-s"&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mbin"&gt;⋅&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="base"&gt;&lt;span class="strut"&gt;&lt;/span&gt;&lt;span class="minner"&gt;&lt;span class="mopen"&gt;&lt;span class="delimsizing mult"&gt;&lt;span class="vlist-t vlist-t2"&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="delimsizinginner delim-size4"&gt;&lt;span&gt;⎣&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="delimsizinginner delim-size4"&gt;&lt;span&gt;⎡&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-s"&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mtable"&gt;&lt;span class="col-align-c"&gt;&lt;span class="vlist-t vlist-t2"&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-s"&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="arraycolsep"&gt;&lt;/span&gt;&lt;span class="arraycolsep"&gt;&lt;/span&gt;&lt;span class="col-align-c"&gt;&lt;span class="vlist-t vlist-t2"&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-s"&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="arraycolsep"&gt;&lt;/span&gt;&lt;span class="arraycolsep"&gt;&lt;/span&gt;&lt;span class="col-align-c"&gt;&lt;span class="vlist-t vlist-t2"&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;−&lt;/span&gt;&lt;span class="mord"&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-s"&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="arraycolsep"&gt;&lt;/span&gt;&lt;span class="arraycolsep"&gt;&lt;/span&gt;&lt;span class="col-align-c"&gt;&lt;span class="vlist-t vlist-t2"&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-s"&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="mclose"&gt;&lt;span class="delimsizing mult"&gt;&lt;span class="vlist-t vlist-t2"&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="delimsizinginner delim-size4"&gt;&lt;span&gt;⎦&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="delimsizinginner delim-size4"&gt;&lt;span&gt;⎤&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-s"&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mbin"&gt;⋅&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="base"&gt;&lt;span class="strut"&gt;&lt;/span&gt;&lt;span class="minner"&gt;&lt;span class="mopen"&gt;&lt;span class="delimsizing mult"&gt;&lt;span class="vlist-t vlist-t2"&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="delimsizinginner delim-size4"&gt;&lt;span&gt;⎣&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="delimsizinginner delim-size4"&gt;&lt;span&gt;⎡&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-s"&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mtable"&gt;&lt;span class="col-align-c"&gt;&lt;span class="vlist-t vlist-t2"&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;2&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-s"&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="arraycolsep"&gt;&lt;/span&gt;&lt;span class="arraycolsep"&gt;&lt;/span&gt;&lt;span class="col-align-c"&gt;&lt;span class="vlist-t vlist-t2"&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;2&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-s"&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="arraycolsep"&gt;&lt;/span&gt;&lt;span class="arraycolsep"&gt;&lt;/span&gt;&lt;span class="col-align-c"&gt;&lt;span class="vlist-t vlist-t2"&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;2&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-s"&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="arraycolsep"&gt;&lt;/span&gt;&lt;span class="arraycolsep"&gt;&lt;/span&gt;&lt;span class="col-align-c"&gt;&lt;span class="vlist-t vlist-t2"&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-s"&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="mclose"&gt;&lt;span class="delimsizing mult"&gt;&lt;span class="vlist-t vlist-t2"&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="delimsizinginner delim-size4"&gt;&lt;span&gt;⎦&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="delimsizinginner delim-size4"&gt;&lt;span&gt;⎤&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-s"&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mrel"&gt;=&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="base"&gt;&lt;span class="strut"&gt;&lt;/span&gt;&lt;span class="mord text"&gt;&lt;span class="mord"&gt;Scale,&amp;nbsp;then&amp;nbsp;Rotate,&amp;nbsp;then&amp;nbsp;Translate&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;/div&gt;


&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvfpua9a639wtcbu6we6e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvfpua9a639wtcbu6we6e.png" alt=" " width="800" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>VIM TIPS - CLOSING BRACKETS AND OTHERS</title>
      <dc:creator>Trinity</dc:creator>
      <pubDate>Mon, 25 May 2026 15:41:15 +0000</pubDate>
      <link>https://dev.to/hwangs12/vim-tip-how-to-add-matching-curly-brace-when-typing-one-4m75</link>
      <guid>https://dev.to/hwangs12/vim-tip-how-to-add-matching-curly-brace-when-typing-one-4m75</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;In your .vimrc file, add &lt;code&gt;inoremap { {}&amp;lt;Esc&amp;gt;ha&lt;/code&gt;&lt;br&gt;
This is equivalent to &lt;em&gt;when I type { in insert mode this is equivalent to typing {,},Esc,h,a&lt;/em&gt; that is why you can write new text &lt;strong&gt;inside&lt;/strong&gt; the curly braces. (Try typing &lt;code&gt;{}&amp;lt;Esc&amp;gt;ha&lt;/code&gt; in insert mode and see where you land)&lt;/p&gt;

&lt;p&gt;Now I don't want to go back to normal mode again to jump over the closing bracket.&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight viml"&gt;&lt;code&gt;&lt;span class="k"&gt;function&lt;/span&gt;&lt;span class="p"&gt;!&lt;/span&gt; IgnoreIfThereIsOneAlready&lt;span class="p"&gt;(&lt;/span&gt;char&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nb"&gt;getline&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'.'&lt;/span&gt;&lt;span class="p"&gt;)[&lt;/span&gt;&lt;span class="k"&gt;col&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'.'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="p"&gt;==&lt;/span&gt; &lt;span class="nv"&gt;a:char&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="s2"&gt;"\&amp;lt;Esc&amp;gt;la"&lt;/span&gt;
    &lt;span class="k"&gt;else&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nv"&gt;a:char&lt;/span&gt;
    &lt;span class="k"&gt;endif&lt;/span&gt;

&lt;span class="k"&gt;endfunction&lt;/span&gt;

inoremap &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;expr&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; IgnoreIfThereIsOneAlready&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'}'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
inoremap &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;expr&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; IgnoreIfThereIsOneAlready&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;')'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is how it looks&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmxara874gnua5jdr7w0i.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmxara874gnua5jdr7w0i.gif" alt=" " width="760" height="262"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;how to find and go to the function name&lt;br&gt;
or how to jump to a function&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I need to use ctags.. let's do this later&lt;/p&gt;

&lt;p&gt;how to insert space when press enter in the curly braces&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight viml"&gt;&lt;code&gt;inoremap &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;expr&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;cr&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;getline&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"."&lt;/span&gt;&lt;span class="p"&gt;)[&lt;/span&gt;    &lt;span class="k"&gt;col&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"."&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="m"&gt;-2&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;col&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"."&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="m"&gt;-1&lt;/span&gt;&lt;span class="p"&gt;]==&lt;/span&gt;&lt;span class="s2"&gt;"{}"&lt;/span&gt; ? &lt;span class="s2"&gt;"&amp;lt;c    r&amp;gt;&amp;lt;esc&amp;gt;O"&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&amp;lt;cr&amp;gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is how it looks&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fov2ssy1fbkeksnorywgd.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fov2ssy1fbkeksnorywgd.gif" alt=" " width="760" height="262"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Creating a shortcut key to open terminal in VIM&lt;br&gt;
I got lazy to type &lt;code&gt;:belowright terminal&lt;/code&gt; in command line mode to open terminal inside vim. So set this in vimrc&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight viml"&gt;&lt;code&gt;nnoremap &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;C&lt;span class="p"&gt;-&lt;/span&gt;&lt;span class="k"&gt;w&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="k"&gt;t&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;belowright&lt;/span&gt; &lt;span class="k"&gt;terminal&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;cr&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;to close it? press &lt;code&gt;control + d&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  How to create a shortcut to see explorer
&lt;/h3&gt;

&lt;p&gt;I'm too lazy to type &lt;code&gt;:Lexplore&lt;/code&gt; and &lt;code&gt;:E&lt;/code&gt; override the screen i'm looking, so I'm going to create shortcut for &lt;code&gt;:Lexplore&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  How to create a ruler on the vim screen
&lt;/h3&gt;

&lt;p&gt;I don't know if my indentations are correct&lt;br&gt;
Q: Is there a way to maybe auto format when I save the document?&lt;br&gt;
For this one, I give up. Indenting is not much an issue for me haha.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to run &lt;code&gt;make&lt;/code&gt; command from the file you are on
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;:make&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Checking if there's existing mapping in vim
&lt;/h3&gt;

&lt;p&gt;Check a specific key: :map  (e.g., :map ) shows what that key is mapped to.&lt;/p&gt;

</description>
      <category>vim</category>
    </item>
    <item>
      <title>Assembly Code to Machine Code (ARM)</title>
      <dc:creator>Trinity</dc:creator>
      <pubDate>Fri, 22 May 2026 18:22:17 +0000</pubDate>
      <link>https://dev.to/hwangs12/assembly-code-to-machine-code-arm-57ga</link>
      <guid>https://dev.to/hwangs12/assembly-code-to-machine-code-arm-57ga</guid>
      <description>&lt;p&gt;Summary of the video &lt;a href="https://www.youtube.com/watch?v=ttJZjP0p_uE" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=ttJZjP0p_uE&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I have heard assembly code is the closest of how humans can write in a fashion that machines can understand. I have never understood how. Here's the bit of how the translation occurs from assembly instruction to machine code. &lt;/p&gt;

&lt;p&gt;In ARM Assembly, the following is the translation from assembly code to binary. After looking at each section in detail, we will try to translate ARM operations into binary operations that machine (ARM chip in this case) understands. &lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;31:28&lt;/th&gt;
&lt;th&gt;27:26&lt;/th&gt;
&lt;th&gt;25&lt;/th&gt;
&lt;th&gt;24:21&lt;/th&gt;
&lt;th&gt;20&lt;/th&gt;
&lt;th&gt;19:16&lt;/th&gt;
&lt;th&gt;15:12&lt;/th&gt;
&lt;th&gt;11:0&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;cond&lt;/td&gt;
&lt;td&gt;op&lt;/td&gt;
&lt;td&gt;I&lt;/td&gt;
&lt;td&gt;cmd&lt;/td&gt;
&lt;td&gt;S&lt;/td&gt;
&lt;td&gt;Rn&lt;/td&gt;
&lt;td&gt;Rd&lt;/td&gt;
&lt;td&gt;Src2&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Cond
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Opcode [31:28]&lt;/th&gt;
&lt;th&gt;Mnemonic extension&lt;/th&gt;
&lt;th&gt;Interpretation&lt;/th&gt;
&lt;th&gt;Status flag state for execution&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;0000&lt;/td&gt;
&lt;td&gt;EQ&lt;/td&gt;
&lt;td&gt;Equal / equals zero&lt;/td&gt;
&lt;td&gt;Z set&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;0001&lt;/td&gt;
&lt;td&gt;NE&lt;/td&gt;
&lt;td&gt;Not equal&lt;/td&gt;
&lt;td&gt;Z clear&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;0010&lt;/td&gt;
&lt;td&gt;CS/HS&lt;/td&gt;
&lt;td&gt;Carry set / unsigned higher or same&lt;/td&gt;
&lt;td&gt;C set&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;0011&lt;/td&gt;
&lt;td&gt;CC/LO&lt;/td&gt;
&lt;td&gt;Carry clear / unsigned lower&lt;/td&gt;
&lt;td&gt;C clear&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;0100&lt;/td&gt;
&lt;td&gt;MI&lt;/td&gt;
&lt;td&gt;Minus / negative&lt;/td&gt;
&lt;td&gt;N set&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;0101&lt;/td&gt;
&lt;td&gt;PL&lt;/td&gt;
&lt;td&gt;Plus / positive or zero&lt;/td&gt;
&lt;td&gt;N clear&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;0110&lt;/td&gt;
&lt;td&gt;VS&lt;/td&gt;
&lt;td&gt;Overflow&lt;/td&gt;
&lt;td&gt;V set&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;0111&lt;/td&gt;
&lt;td&gt;VC&lt;/td&gt;
&lt;td&gt;No overflow&lt;/td&gt;
&lt;td&gt;V clear&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1000&lt;/td&gt;
&lt;td&gt;HI&lt;/td&gt;
&lt;td&gt;Unsigned higher&lt;/td&gt;
&lt;td&gt;C set and Z clear&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1001&lt;/td&gt;
&lt;td&gt;LS&lt;/td&gt;
&lt;td&gt;Unsigned lower or same&lt;/td&gt;
&lt;td&gt;C clear or Z set&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1010&lt;/td&gt;
&lt;td&gt;GE&lt;/td&gt;
&lt;td&gt;Signed greater than or equal&lt;/td&gt;
&lt;td&gt;N equals V&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1011&lt;/td&gt;
&lt;td&gt;LT&lt;/td&gt;
&lt;td&gt;Signed less than&lt;/td&gt;
&lt;td&gt;N is not equal to V&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1100&lt;/td&gt;
&lt;td&gt;GT&lt;/td&gt;
&lt;td&gt;Signed greater than or equal&lt;/td&gt;
&lt;td&gt;Z clear and N equals V&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1101&lt;/td&gt;
&lt;td&gt;LE&lt;/td&gt;
&lt;td&gt;Signed less than or equal&lt;/td&gt;
&lt;td&gt;Z set or N is not equal to V&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1110&lt;/td&gt;
&lt;td&gt;AL&lt;/td&gt;
&lt;td&gt;Always&lt;/td&gt;
&lt;td&gt;any&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1111&lt;/td&gt;
&lt;td&gt;NV&lt;/td&gt;
&lt;td&gt;Never (do not use!)&lt;/td&gt;
&lt;td&gt;none&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;SOME NOTES&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;ADD&lt;/code&gt; operation takes Opcode 1110 &lt;code&gt;AL&lt;/code&gt; for &lt;em&gt;always&lt;/em&gt;. &lt;/li&gt;
&lt;li&gt;Flag bit is usually the previous operation that results in some bit set. In &lt;code&gt;ADDEQ&lt;/code&gt; it will execute if the previous instruction set Z flag to true (1). &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  op
&lt;/h2&gt;

&lt;h2&gt;
  
  
  I
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;It stands for &lt;em&gt;immediate&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Example, &lt;code&gt;ADD, R1, R2, #0x28&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;If a constant / label is used, then the I field is set to 1&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  cmd
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;This is the operation that we are well aware of &lt;/li&gt;
&lt;li&gt;It is ARM data processing instructions&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Opcode [24:21]&lt;/th&gt;
&lt;th&gt;Mnemonic&lt;/th&gt;
&lt;th&gt;Meaning&lt;/th&gt;
&lt;th&gt;Effect&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;0000&lt;/td&gt;
&lt;td&gt;AND&lt;/td&gt;
&lt;td&gt;Logical bit-wise AND&lt;/td&gt;
&lt;td&gt;Rd := Rn AND Op2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;0001&lt;/td&gt;
&lt;td&gt;EOR&lt;/td&gt;
&lt;td&gt;Logical bit-wise exclusive OR&lt;/td&gt;
&lt;td&gt;Rd := Rn EOR Op2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;0010&lt;/td&gt;
&lt;td&gt;SUB&lt;/td&gt;
&lt;td&gt;Subtract&lt;/td&gt;
&lt;td&gt;Rd := Rn - Op2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;0011&lt;/td&gt;
&lt;td&gt;RSB&lt;/td&gt;
&lt;td&gt;Reverse subtract&lt;/td&gt;
&lt;td&gt;Rd := Op2 - Rn&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;0100&lt;/td&gt;
&lt;td&gt;ADD&lt;/td&gt;
&lt;td&gt;Add&lt;/td&gt;
&lt;td&gt;Rd := Rn + Op2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;0101&lt;/td&gt;
&lt;td&gt;ADC&lt;/td&gt;
&lt;td&gt;Add with carry&lt;/td&gt;
&lt;td&gt;Rd := Rn + Op2 + C&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;0110&lt;/td&gt;
&lt;td&gt;SBC&lt;/td&gt;
&lt;td&gt;Subtract with carry&lt;/td&gt;
&lt;td&gt;Rd := Rn - Op2 + C - 1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;0111&lt;/td&gt;
&lt;td&gt;RSC&lt;/td&gt;
&lt;td&gt;Reverse subtract with carry&lt;/td&gt;
&lt;td&gt;Rd := Op2 - Rn + C - 1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1000&lt;/td&gt;
&lt;td&gt;TST&lt;/td&gt;
&lt;td&gt;Test&lt;/td&gt;
&lt;td&gt;Scc on Rn AND Op2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1001&lt;/td&gt;
&lt;td&gt;TEQ&lt;/td&gt;
&lt;td&gt;Test equivalence&lt;/td&gt;
&lt;td&gt;Scc on Rn EOR Op2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1010&lt;/td&gt;
&lt;td&gt;CMP&lt;/td&gt;
&lt;td&gt;Compare&lt;/td&gt;
&lt;td&gt;Scc on Rn - Op2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1011&lt;/td&gt;
&lt;td&gt;CMN&lt;/td&gt;
&lt;td&gt;Compare negated&lt;/td&gt;
&lt;td&gt;Scc on Rn + Op2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1100&lt;/td&gt;
&lt;td&gt;ORR&lt;/td&gt;
&lt;td&gt;Logical bit-wise OR&lt;/td&gt;
&lt;td&gt;Rd := Rn OR Op2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1101&lt;/td&gt;
&lt;td&gt;MOV&lt;/td&gt;
&lt;td&gt;Move&lt;/td&gt;
&lt;td&gt;Rd := Op2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1110&lt;/td&gt;
&lt;td&gt;BIC&lt;/td&gt;
&lt;td&gt;Bit clear&lt;/td&gt;
&lt;td&gt;Rd := Rn AND NOT Op2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1111&lt;/td&gt;
&lt;td&gt;MVN&lt;/td&gt;
&lt;td&gt;Move negated&lt;/td&gt;
&lt;td&gt;Rd := NOT Op2&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  S
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Setting S here means, we want the status of operation&lt;/li&gt;
&lt;li&gt;For example, &lt;code&gt;ADDS R1, R2, R3&lt;/code&gt; means, put on the status like whether the operation will be Zero, Negative, Carry (this will be shown in CPSR register - which we will cover but not in this article)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ADDS&lt;/code&gt; operation will set S status to 1 and let us start tracking the status. &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Rn (19:16)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;It is called first source register&lt;/li&gt;
&lt;li&gt;In &lt;code&gt;ADD R1, R2, R3&lt;/code&gt; Rn is &lt;strong&gt;R2&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Hence get's binary value of 0010 in 19:16&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Rd (15:12)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;It is also called destination register&lt;/li&gt;
&lt;li&gt;In &lt;code&gt;ADD R1, R2, R3&lt;/code&gt; Rd is &lt;strong&gt;R1&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Hence it gets binary value of 0001 in 15:12&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Src2 (11:0)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Second Source&lt;/em&gt;: Can be a variety of things
a) Immediate
b) Register
c) Register-shifted Register &lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Immediate
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;11:8&lt;/th&gt;
&lt;th&gt;7:0&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;rot&lt;/td&gt;
&lt;td&gt;imm8&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;rot&lt;/strong&gt; is for &lt;em&gt;rotation&lt;/em&gt;. Mnemonic for it is &lt;code&gt;ROR&lt;/code&gt; for &lt;em&gt;rotate right&lt;/em&gt;. &lt;/li&gt;
&lt;li&gt;NOTE: It is subject to rotate right by twice the value in the rotate field&lt;/li&gt;
&lt;li&gt;11:8 bits represent the amount of rotation to right of their immediate counterpart (7:0)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Register
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;11:7&lt;/th&gt;
&lt;th&gt;6:5&lt;/th&gt;
&lt;th&gt;4&lt;/th&gt;
&lt;th&gt;3:0&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;shamt5&lt;/td&gt;
&lt;td&gt;sh&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;Rm&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;shamt5 represents amount of shift whether left or right&lt;/li&gt;
&lt;li&gt;sh is the shift operators - ops table at the bottom&lt;/li&gt;
&lt;li&gt;Rm is the register of target whose values being shifted &lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Register-shifted Register
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;11:8&lt;/th&gt;
&lt;th&gt;7&lt;/th&gt;
&lt;th&gt;6:5&lt;/th&gt;
&lt;th&gt;4&lt;/th&gt;
&lt;th&gt;3:0&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Rs&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;sh&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;Rm&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;Rs is the register that holds the amount of shift&lt;/li&gt;
&lt;li&gt;Rm is the target register whose value is being shifted&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  sh table
&lt;/h4&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Instruction&lt;/th&gt;
&lt;th&gt;sh&lt;/th&gt;
&lt;th&gt;Operation&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;LSL&lt;/td&gt;
&lt;td&gt;00&lt;/td&gt;
&lt;td&gt;Logical shift left&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LSR&lt;/td&gt;
&lt;td&gt;01&lt;/td&gt;
&lt;td&gt;Logical shift right&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ASR&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;Arithmetic shift right&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ROR&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;Rotate right&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  STARTING WITH THE EASY ONE &lt;code&gt;ADD R5, R6, R7&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;Let's unpack one section at a time&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;cond is ALWAYS hence 1110, since there's no condition to prevent ADD being done.&lt;/li&gt;
&lt;li&gt;op is 00&lt;/li&gt;
&lt;li&gt;I is 0 (there's no immediate values here)&lt;/li&gt;
&lt;li&gt;cmd is ADD which translates to 0100&lt;/li&gt;
&lt;li&gt;No Status indicator ADD(S) S is omitted, hence S is 0&lt;/li&gt;
&lt;li&gt;Rn is source, hence R6, 0110&lt;/li&gt;
&lt;li&gt;Rd is destination, hence R5, 0101&lt;/li&gt;
&lt;li&gt;shamt5 is 00000, since there's no shift &lt;/li&gt;
&lt;li&gt;Sh is 00  as there's no shift&lt;/li&gt;
&lt;li&gt;Rm is src2 hence, 7. 0111.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Combining them leads to &lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;31:28&lt;/th&gt;
&lt;th&gt;27:26&lt;/th&gt;
&lt;th&gt;25&lt;/th&gt;
&lt;th&gt;24:21&lt;/th&gt;
&lt;th&gt;20&lt;/th&gt;
&lt;th&gt;19:16&lt;/th&gt;
&lt;th&gt;15:12&lt;/th&gt;
&lt;th&gt;11:7&lt;/th&gt;
&lt;th&gt;6:5&lt;/th&gt;
&lt;th&gt;4&lt;/th&gt;
&lt;th&gt;3:0&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1110&lt;/td&gt;
&lt;td&gt;00&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0100&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0110&lt;/td&gt;
&lt;td&gt;0101&lt;/td&gt;
&lt;td&gt;00000&lt;/td&gt;
&lt;td&gt;00&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0111&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;cond&lt;/td&gt;
&lt;td&gt;op&lt;/td&gt;
&lt;td&gt;I&lt;/td&gt;
&lt;td&gt;cmd&lt;/td&gt;
&lt;td&gt;S&lt;/td&gt;
&lt;td&gt;Rn&lt;/td&gt;
&lt;td&gt;Rd&lt;/td&gt;
&lt;td&gt;shamt5&lt;/td&gt;
&lt;td&gt;sh&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;td&gt;Rm&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Nicely formatted binary here: &lt;br&gt;
&lt;strong&gt;1110 0000 1000 0110 0101 0000 0000 0111&lt;/strong&gt;&lt;br&gt;
Care to convert to hex? &lt;br&gt;
&lt;strong&gt;0xE0865007&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  SLIGHTLY HARDER: &lt;code&gt;ADD R5, R6, R7, LSR #4&lt;/code&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;we pick immediate variety for shift operations since because &lt;code&gt;#4&lt;/code&gt; is a literal value&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Most are the same except fields 11:0&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;LSR&lt;/code&gt; has sh code as 01&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;LSR&lt;/code&gt; amount is 4 so shamt5 is 00100&lt;/li&gt;
&lt;li&gt;Rm is 7, hence 0111&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;31:28&lt;/th&gt;
&lt;th&gt;27:26&lt;/th&gt;
&lt;th&gt;25&lt;/th&gt;
&lt;th&gt;24:21&lt;/th&gt;
&lt;th&gt;20&lt;/th&gt;
&lt;th&gt;19:16&lt;/th&gt;
&lt;th&gt;15:12&lt;/th&gt;
&lt;th&gt;11:7&lt;/th&gt;
&lt;th&gt;6:5&lt;/th&gt;
&lt;th&gt;4&lt;/th&gt;
&lt;th&gt;3:0&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1110&lt;/td&gt;
&lt;td&gt;00&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0100&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0110&lt;/td&gt;
&lt;td&gt;0101&lt;/td&gt;
&lt;td&gt;00100&lt;/td&gt;
&lt;td&gt;01&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0111&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;cond&lt;/td&gt;
&lt;td&gt;op&lt;/td&gt;
&lt;td&gt;I&lt;/td&gt;
&lt;td&gt;cmd&lt;/td&gt;
&lt;td&gt;S&lt;/td&gt;
&lt;td&gt;Rn&lt;/td&gt;
&lt;td&gt;Rd&lt;/td&gt;
&lt;td&gt;shamt5&lt;/td&gt;
&lt;td&gt;sh&lt;/td&gt;
&lt;td&gt;null&lt;/td&gt;
&lt;td&gt;Rm&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  LET'S DO MORE: &lt;code&gt;ADD R0, R1, #42&lt;/code&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;The third one is immediate, hence&lt;/li&gt;
&lt;li&gt;I is set to 1&lt;/li&gt;
&lt;li&gt;Src2 becomes immediate format (rot for 11:8 and immediate value 7:0)&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;31:28&lt;/th&gt;
&lt;th&gt;27:26&lt;/th&gt;
&lt;th&gt;25&lt;/th&gt;
&lt;th&gt;24:21&lt;/th&gt;
&lt;th&gt;20&lt;/th&gt;
&lt;th&gt;19:16&lt;/th&gt;
&lt;th&gt;15:12&lt;/th&gt;
&lt;th&gt;11:8&lt;/th&gt;
&lt;th&gt;7:0&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1110&lt;/td&gt;
&lt;td&gt;00&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;0100&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0001&lt;/td&gt;
&lt;td&gt;0000&lt;/td&gt;
&lt;td&gt;0000&lt;/td&gt;
&lt;td&gt;00101010&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;cond&lt;/td&gt;
&lt;td&gt;op&lt;/td&gt;
&lt;td&gt;I&lt;/td&gt;
&lt;td&gt;cmd&lt;/td&gt;
&lt;td&gt;S&lt;/td&gt;
&lt;td&gt;Rn&lt;/td&gt;
&lt;td&gt;Rd&lt;/td&gt;
&lt;td&gt;Rot&lt;/td&gt;
&lt;td&gt;imm8&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  BRING SOME MORE! &lt;code&gt;SUB R2, R3, #0xFF0&lt;/code&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Rd is 2, Rn is 3, imm - 0xff0&lt;/li&gt;
&lt;li&gt;SUB has 0010 code. &lt;/li&gt;
&lt;li&gt;OH NO, BUT #0xFF0 does not fit in 8 bit. &lt;/li&gt;
&lt;li&gt;That's ok. That's what rot is for. &lt;/li&gt;
&lt;li&gt;0xFF0 is 0000 0000 0000 0000 0000 1111 1111 0000&lt;/li&gt;
&lt;li&gt;0xFF is 0000 0000 0000 0000 0000 0000 1111 1111&lt;/li&gt;
&lt;li&gt;How many shift to right will make 0xFF the 0xFF0?&lt;/li&gt;
&lt;li&gt;1 shift right is 1000 0000 0000 0000 0000 0000 0111 1111&lt;/li&gt;
&lt;li&gt;Following? Let's shift right a little more.&lt;/li&gt;
&lt;li&gt;4 shift right is 1111 0000 0000 0000 0000 0000 0000 1111&lt;/li&gt;
&lt;li&gt;8 shift right is 1111 1111 0000 0000 0000 0000 0000 0000&lt;/li&gt;
&lt;li&gt;guess what? it takes 24 shift right to get 0xFF0!&lt;/li&gt;
&lt;li&gt;So, rot should be 12 since by our &lt;em&gt;rule&lt;/em&gt; the actual rotation is twice the value at &lt;strong&gt;rot&lt;/strong&gt;. &lt;/li&gt;
&lt;li&gt;Hence, the 11:8 bit values will be &lt;code&gt;1100&lt;/code&gt; and 7:0 &lt;code&gt;1111 1111&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;which is just a representation of 0xff0 into 8 bit number combined with rotation. &lt;/li&gt;
&lt;/ol&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;31:28&lt;/th&gt;
&lt;th&gt;27:26&lt;/th&gt;
&lt;th&gt;25&lt;/th&gt;
&lt;th&gt;24:21&lt;/th&gt;
&lt;th&gt;20&lt;/th&gt;
&lt;th&gt;19:16&lt;/th&gt;
&lt;th&gt;15:12&lt;/th&gt;
&lt;th&gt;11:8&lt;/th&gt;
&lt;th&gt;7:0&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1110&lt;/td&gt;
&lt;td&gt;00&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;0010&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0011&lt;/td&gt;
&lt;td&gt;0000&lt;/td&gt;
&lt;td&gt;1100&lt;/td&gt;
&lt;td&gt;11111111&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;cond&lt;/td&gt;
&lt;td&gt;op&lt;/td&gt;
&lt;td&gt;I&lt;/td&gt;
&lt;td&gt;cmd&lt;/td&gt;
&lt;td&gt;S&lt;/td&gt;
&lt;td&gt;Rn&lt;/td&gt;
&lt;td&gt;Rd&lt;/td&gt;
&lt;td&gt;Rot&lt;/td&gt;
&lt;td&gt;imm8&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  WHAT ABOUT THIS? &lt;code&gt;LSL R0, R9, #7&lt;/code&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;WAIT WAIT... LSL is not in the command table. How am I supposed to put in the bit field 24:21?&lt;/li&gt;
&lt;li&gt;Thanks Rakesh, the creator of the video: Basically LSL is equivalent to this: &lt;code&gt;MOV R0, R9, LSL #7&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Wait again... Rakesh says R9 is not Rn... Hm.. I thought it would be the same as how SUB was done above. &lt;/li&gt;
&lt;li&gt;In the MOV operation, that's not the case, as per user guide armasm user guide page 333 &lt;code&gt;MOV R0, R9, LSL #7&lt;/code&gt; applies to the following syntax: &lt;code&gt;MOV{S}{cond} Rd, Operand2&lt;/code&gt; where operand2 is (according to page 244 the same guide) can be &lt;em&gt;Register with optional shift.&lt;/em&gt;. Hence, on page 246 of the guide it says, register with optional shift, is &lt;code&gt;Rm{, shift}&lt;/code&gt;. &lt;/li&gt;
&lt;li&gt;Still following?&lt;/li&gt;
&lt;li&gt;Hence, R9 here is Rm, where Rm is the register holding the data for the second operand. &lt;/li&gt;
&lt;li&gt;Hence, Rn here is 0 and Rm is 9&lt;/li&gt;
&lt;li&gt;(BY THE WAY THE REFERENCE I'M TALKING ABOUT IS &lt;em&gt;armasm User Guide&lt;/em&gt; Version 6.6) - the latest is &lt;a href="https://developer.arm.com/documentation/100069/latest/" rel="noopener noreferrer"&gt;here&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;31:28&lt;/th&gt;
&lt;th&gt;27:26&lt;/th&gt;
&lt;th&gt;25&lt;/th&gt;
&lt;th&gt;24:21&lt;/th&gt;
&lt;th&gt;20&lt;/th&gt;
&lt;th&gt;19:16&lt;/th&gt;
&lt;th&gt;15:12&lt;/th&gt;
&lt;th&gt;11:7&lt;/th&gt;
&lt;th&gt;6:5&lt;/th&gt;
&lt;th&gt;4&lt;/th&gt;
&lt;th&gt;3:0&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1110&lt;/td&gt;
&lt;td&gt;00&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;1101&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0000&lt;/td&gt;
&lt;td&gt;0000&lt;/td&gt;
&lt;td&gt;00111&lt;/td&gt;
&lt;td&gt;00&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;1001&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;cond&lt;/td&gt;
&lt;td&gt;op&lt;/td&gt;
&lt;td&gt;I&lt;/td&gt;
&lt;td&gt;cmd&lt;/td&gt;
&lt;td&gt;S&lt;/td&gt;
&lt;td&gt;Rn&lt;/td&gt;
&lt;td&gt;Rd&lt;/td&gt;
&lt;td&gt;shamt5&lt;/td&gt;
&lt;td&gt;sh&lt;/td&gt;
&lt;td&gt;null&lt;/td&gt;
&lt;td&gt;Rm&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  OK TAKE A BREAK AND COME BACK! &lt;code&gt;ROR R3, R5, #21&lt;/code&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;GUESS WHAT.. SHIFT AGAIN! Which means Rm is 5&lt;/li&gt;
&lt;li&gt;This is equivalent to &lt;code&gt;MOV R3, R5, ROR, #21&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Same translation step for &lt;code&gt;LSL&lt;/code&gt; above..&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;31:28&lt;/th&gt;
&lt;th&gt;27:26&lt;/th&gt;
&lt;th&gt;25&lt;/th&gt;
&lt;th&gt;24:21&lt;/th&gt;
&lt;th&gt;20&lt;/th&gt;
&lt;th&gt;19:16&lt;/th&gt;
&lt;th&gt;15:12&lt;/th&gt;
&lt;th&gt;11:7&lt;/th&gt;
&lt;th&gt;6:5&lt;/th&gt;
&lt;th&gt;4&lt;/th&gt;
&lt;th&gt;3:0&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1110&lt;/td&gt;
&lt;td&gt;00&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;1101&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0000&lt;/td&gt;
&lt;td&gt;0011&lt;/td&gt;
&lt;td&gt;10101&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0101&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;cond&lt;/td&gt;
&lt;td&gt;op&lt;/td&gt;
&lt;td&gt;I&lt;/td&gt;
&lt;td&gt;cmd&lt;/td&gt;
&lt;td&gt;S&lt;/td&gt;
&lt;td&gt;Rn&lt;/td&gt;
&lt;td&gt;Rd&lt;/td&gt;
&lt;td&gt;shamt5&lt;/td&gt;
&lt;td&gt;sh&lt;/td&gt;
&lt;td&gt;null&lt;/td&gt;
&lt;td&gt;Rm&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;KEY TAKEAWAY:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;There's no one rule for all in the translations. Sometimes, you have to look up command table sometimes you will face operation that are not in one table hence, need to break down the command. &lt;/li&gt;
&lt;li&gt;But, all should be translated to binary otherwise, machine won't understand! So, let's stick to the basics and see if we can translate!!!!!&lt;/li&gt;
&lt;li&gt;Good news and bad news: You and I have learned how to translate,, not entirely but seen a bit of it... But these translation steps will be also different in A64 architecture but... we learned how to apply our knowledge in some way... Some methods must be similar... must be..&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  OK AFTER YOUR DINNER... &lt;code&gt;LSR R4, R8, R6&lt;/code&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;This time the shift amount is in R6. &lt;/li&gt;
&lt;li&gt;Does that make R8, the source register the Rn? &lt;/li&gt;
&lt;li&gt;NOPE!! &lt;/li&gt;
&lt;li&gt;This is equivalent to &lt;code&gt;MOV R4, R8, LSR, R6&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;R6 is Rs haha! Found it!&lt;/li&gt;
&lt;li&gt;Rm is 8 hohoho&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;31:28&lt;/th&gt;
&lt;th&gt;27:26&lt;/th&gt;
&lt;th&gt;25&lt;/th&gt;
&lt;th&gt;24:21&lt;/th&gt;
&lt;th&gt;20&lt;/th&gt;
&lt;th&gt;19:16&lt;/th&gt;
&lt;th&gt;15:12&lt;/th&gt;
&lt;th&gt;11:8&lt;/th&gt;
&lt;th&gt;7&lt;/th&gt;
&lt;th&gt;6:5&lt;/th&gt;
&lt;th&gt;4&lt;/th&gt;
&lt;th&gt;3:0&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1110&lt;/td&gt;
&lt;td&gt;00&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;1101&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0000&lt;/td&gt;
&lt;td&gt;0100&lt;/td&gt;
&lt;td&gt;0110&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;01&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;1000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;cond&lt;/td&gt;
&lt;td&gt;op&lt;/td&gt;
&lt;td&gt;I&lt;/td&gt;
&lt;td&gt;cmd&lt;/td&gt;
&lt;td&gt;S&lt;/td&gt;
&lt;td&gt;Rn&lt;/td&gt;
&lt;td&gt;Rd&lt;/td&gt;
&lt;td&gt;Rs&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;td&gt;sh&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;td&gt;Rm&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  PHEW LET'S SLEEP AFTER THIS... &lt;code&gt;ASR R5, R1, R12&lt;/code&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;What is Rd, Rn, Rm, Rs?? Is some of them 0? Which one?&lt;/li&gt;
&lt;li&gt;Answer below:&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;31:28&lt;/th&gt;
&lt;th&gt;27:26&lt;/th&gt;
&lt;th&gt;25&lt;/th&gt;
&lt;th&gt;24:21&lt;/th&gt;
&lt;th&gt;20&lt;/th&gt;
&lt;th&gt;19:16&lt;/th&gt;
&lt;th&gt;15:12&lt;/th&gt;
&lt;th&gt;11:8&lt;/th&gt;
&lt;th&gt;7&lt;/th&gt;
&lt;th&gt;6:5&lt;/th&gt;
&lt;th&gt;4&lt;/th&gt;
&lt;th&gt;3:0&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1110&lt;/td&gt;
&lt;td&gt;00&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;1101&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0000&lt;/td&gt;
&lt;td&gt;0101&lt;/td&gt;
&lt;td&gt;1100&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;0001&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;cond&lt;/td&gt;
&lt;td&gt;op&lt;/td&gt;
&lt;td&gt;I&lt;/td&gt;
&lt;td&gt;cmd&lt;/td&gt;
&lt;td&gt;S&lt;/td&gt;
&lt;td&gt;Rn&lt;/td&gt;
&lt;td&gt;Rd&lt;/td&gt;
&lt;td&gt;Rs&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;td&gt;sh&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;td&gt;Rm&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

</description>
      <category>arm</category>
    </item>
    <item>
      <title>BASIC COMPILATION COMMANDS - GCC</title>
      <dc:creator>Trinity</dc:creator>
      <pubDate>Thu, 21 May 2026 11:03:17 +0000</pubDate>
      <link>https://dev.to/hwangs12/basic-compilation-commands-gcc-5h46</link>
      <guid>https://dev.to/hwangs12/basic-compilation-commands-gcc-5h46</guid>
      <description>&lt;h3&gt;
  
  
  GCC - MAIN command to invoke compiler
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;-o set name of output file&lt;/li&gt;
&lt;li&gt;-E Stop after the preprocessing stage; Creates preprocessed files&lt;/li&gt;
&lt;li&gt;-S Stop after the assembly; Creates assembly files&lt;/li&gt;
&lt;li&gt;-c Assemble the source files; Creates object files&lt;/li&gt;
&lt;li&gt;-save-temps Do not delete intermediate files&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://youtu.be/YoyKDZlXCUM?si=U-_Rn_VE5Kyss0wN" rel="noopener noreferrer"&gt;Source&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>ARM BASICS</title>
      <dc:creator>Trinity</dc:creator>
      <pubDate>Mon, 18 May 2026 19:50:30 +0000</pubDate>
      <link>https://dev.to/hwangs12/arm-basics-1336</link>
      <guid>https://dev.to/hwangs12/arm-basics-1336</guid>
      <description>&lt;h2&gt;
  
  
  STR Rx, [Ry]
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;STORE the value of Rx into the memory with address saved in Ry. So, it's not 'Save value of R3 into R1.' More precisely,
suppose R1 has memory address 0x1234, then program will look up memory 0x1234 and save the value there, not directly into R1.
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  LDR Rx, [Ry]
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Program: I will look up the value of Ry, that will be your memory address I will look up, then I will load the value in that memory into Rx. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frfl4cqkahum192aa9fip.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frfl4cqkahum192aa9fip.png" alt=" " width="800" height="344"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To &lt;em&gt;wake&lt;/em&gt; up cores, you need to &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Save the program counter somewhere&lt;/li&gt;
&lt;li&gt;Save the #0xe0 or #0xe8 or #0xf0 for core 1, 2, and 3 respectively&lt;/li&gt;
&lt;li&gt;Move the PC address into the memory address above. &lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>architecture</category>
      <category>beginners</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Hot take - you don't need react</title>
      <dc:creator>Trinity</dc:creator>
      <pubDate>Fri, 21 Feb 2025 03:30:20 +0000</pubDate>
      <link>https://dev.to/hwangs12/hot-take-you-dont-need-react-475i</link>
      <guid>https://dev.to/hwangs12/hot-take-you-dont-need-react-475i</guid>
      <description>&lt;p&gt;don't learn react&lt;br&gt;
just learn javascript and typescript and build one without using react because react is just javascript and typescript.&lt;br&gt;
if anyone tells you react is to ease your life in building software, know it is not, you can do it with just javascript and typescript, react is just a bloat, trying to obscure your understanding of the subject. &lt;/p&gt;

</description>
    </item>
    <item>
      <title>Core C++ OOP Concepts</title>
      <dc:creator>Trinity</dc:creator>
      <pubDate>Thu, 08 Sep 2022 02:37:15 +0000</pubDate>
      <link>https://dev.to/hwangs12/core-c-oop-concepts-1lai</link>
      <guid>https://dev.to/hwangs12/core-c-oop-concepts-1lai</guid>
      <description>&lt;p&gt;Four concepts:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Encapsulation - setting access level for whatever is inside a class&lt;/li&gt;
&lt;li&gt;Abstraction - creating a design of things you like&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Things learned today&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;When you write static array and assign to a variable with less than x in array[x] then the rest of the space is by default filled in as 0 (in c++ 14)&lt;/li&gt;
&lt;li&gt;If you do not specify the length of the array, then the size is size of element multiplied by how many you put in when you initialize&lt;/li&gt;
&lt;li&gt;array as argument in a function parameter will 'read' only one element (int* aka pointer to int) &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7nebw7bq62nmfzwhexxo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7nebw7bq62nmfzwhexxo.png" alt=" " width="314" height="246"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0clr3jhr4znuzjmqb3c5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0clr3jhr4znuzjmqb3c5.png" alt="Compiler Warning" width="646" height="177"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>cpp</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Pointer &amp; Reference &amp; Deference in C++</title>
      <dc:creator>Trinity</dc:creator>
      <pubDate>Sat, 16 Jul 2022 08:26:16 +0000</pubDate>
      <link>https://dev.to/hwangs12/pointer-reference-deference-in-c-25kf</link>
      <guid>https://dev.to/hwangs12/pointer-reference-deference-in-c-25kf</guid>
      <description>&lt;p&gt;Say you have a variable 'a' of type integer. &lt;br&gt;
&lt;code&gt;int a = 4;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Then, you can find the address of 'a' using pointer.&lt;br&gt;
&lt;code&gt;int *b = &amp;amp;a;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Well, not exactly because '&amp;amp;a' will give you the address as well. Try,&lt;br&gt;
&lt;code&gt;cout &amp;lt;&amp;lt; &amp;amp;a; // will output address of the variable a&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;But, back to the pointer, it gives you the ability to 'save' the address of memory. Hence, it will show memory address of 'a' as well. Try,&lt;br&gt;
&lt;code&gt;cout &amp;lt;&amp;lt; b&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;What would happen if I try printing out *b? It will give you the value of 'a'. Weird, isn't it? This behavior is called dereferencing, meaning you get the actual value of whatever is saved in that memory. &lt;/p&gt;

&lt;p&gt;Does b have memory address as well? Yes, you can access it with '&amp;amp;b'&lt;/p&gt;

&lt;p&gt;So, in summary&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// note it has memory allocated to this integer&lt;/span&gt;
&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// you can save the memory address to a variable 'a'&lt;/span&gt;
&lt;span class="n"&gt;cout&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// it will give you memory address of 'a'. Notice how it is not saved in '*b' but 'b' itself. &lt;/span&gt;
&lt;span class="n"&gt;cout&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// this will give you memory address of 'a'&lt;/span&gt;
&lt;span class="n"&gt;cout&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// this will give you the value of 'a'. Dereferenced!&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Question remains: what would &amp;amp;*b produce? what will *&amp;amp;a produce?&lt;/p&gt;

&lt;p&gt;Answer: &lt;br&gt;
&amp;amp;*b -&amp;gt; it is address of pointer to 'a', hence same as &amp;amp;a, memory address where 'a' is saved. &lt;br&gt;
*&amp;amp;a -&amp;gt; * dereferences memory address aka finds out the value in the address hence value of 'a' &lt;/p&gt;

</description>
    </item>
    <item>
      <title>Blindly Following Other People's Solution</title>
      <dc:creator>Trinity</dc:creator>
      <pubDate>Fri, 17 Jun 2022 21:36:02 +0000</pubDate>
      <link>https://dev.to/hwangs12/blindly-following-other-peoples-solution-21kc</link>
      <guid>https://dev.to/hwangs12/blindly-following-other-peoples-solution-21kc</guid>
      <description>&lt;p&gt;There are some things I do not understand in the coding world: Making assumptions like it's true. Let's see this solution to binary search. &lt;/p&gt;

&lt;p&gt;The question is to find a target number in an array of numbers. If the target is not in the array, return -1. If it is, return the index of the target in the array. &lt;/p&gt;

&lt;p&gt;This user's coding solution is brilliant&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;search&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;nums&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;target&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;lo&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;hi&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;nums&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;while &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;lo&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nx"&gt;hi&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;mid&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;lo&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nb"&gt;Math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;floor&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;hi&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;lo&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;target&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nx"&gt;nums&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;mid&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="nx"&gt;hi&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;mid&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="nx"&gt;lo&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;mid&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;nums&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;lo&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="nx"&gt;target&lt;/span&gt;&lt;span class="p"&gt;?&lt;/span&gt;&lt;span class="nx"&gt;lo&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The solver goes on further to explain (which I really appreciate by the way rather than simply writing down solution) the logic behind his choice of indexes of midpoint, low, and high. &lt;/p&gt;

&lt;p&gt;Quote&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9815jyfp1nfesu9p7gvk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9815jyfp1nfesu9p7gvk.png" alt=" " width="800" height="155"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But! That seemingly sound very mathematical or programmatic is actually not that rigorous because if you change lo+hi/2 to lo+hi+1/2 there won't be an overflow. So, there is nothing wrong with that certain operations. &lt;/p&gt;

&lt;p&gt;This, I think is the problem in trying to understand every leetcode problem on the high level. You will not get things correct. &lt;/p&gt;

&lt;p&gt;Beware folks! You never know what's true until you see and understand how it works.   &lt;/p&gt;

</description>
      <category>leetcode</category>
    </item>
  </channel>
</rss>
