<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Computer Engineering on maladroit.dev</title><link>https://maladroit.dev/kb/computer-engineering/</link><description>Recent content in Computer Engineering on maladroit.dev</description><generator>Hugo</generator><language>en-us</language><atom:link href="https://maladroit.dev/kb/computer-engineering/index.xml" rel="self" type="application/rss+xml"/><item><title>Chris Hecker Interview Process</title><link>https://maladroit.dev/kb/computer-engineering/chris-hecker-interviewing/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://maladroit.dev/kb/computer-engineering/chris-hecker-interviewing/</guid><description>&lt;p&gt;The Chris Hecker interview process is an approach to interviewing software
engineers that focuses on assessing the candidate based on topics they should
already be very familiar with. It is designed to put the candidate into an
authoritative position where they have all the answers instead of presenting
them a problem they have zero familiarity with.&lt;/p&gt;
&lt;p&gt;The interviewer&amp;rsquo;s role is to ask clarifying questions to test the candidate&amp;rsquo;s
technical knowledge of projects they have worked on. This will often involve
asking questions the interviewer may already know the answer to, but framing it
as if they don&amp;rsquo;t. This gives the candidate the opportunity to explain a subject
and demonstrate if they have a deeper technical understanding or just surface
level details. It also shows off how good a candidate is at communicating ideas
to someone who is unfamiliar with them.&lt;/p&gt;</description></item><item><title>Entity component system</title><link>https://maladroit.dev/kb/computer-engineering/entity-component-system/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://maladroit.dev/kb/computer-engineering/entity-component-system/</guid><description>&lt;p&gt;Entity component systems simplify architecture and encourage separation of
responsibilities.&lt;/p&gt;</description></item><item><title>Floating points</title><link>https://maladroit.dev/kb/computer-engineering/floating-points/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://maladroit.dev/kb/computer-engineering/floating-points/</guid><description>&lt;p&gt;The concept of floating point numbers was created to solve the problem that
integer values cannot represent fractional numbers. Floating point numbers are
an approximation of real numbers due to the fact that their is an infinite
number of fractions between two integers.&lt;/p&gt;
&lt;h2 id="ieee-754"&gt;IEEE-754&lt;/h2&gt;
&lt;p&gt;The IEEE-754 standard for floats is that some bits represent a mantissa and
other bits represent an exponent that is applied as a multiplier to the
mantissa.&lt;/p&gt;</description></item><item><title>Interger literals</title><link>https://maladroit.dev/kb/computer-engineering/integers/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://maladroit.dev/kb/computer-engineering/integers/</guid><description>&lt;p&gt;Integer literals are numbered values that do not have a fractional component or
an exponent.&lt;/p&gt;
&lt;h2 id="representation"&gt;Representation&lt;/h2&gt;
&lt;p&gt;Integer literals can be represented in many different forms for convenience. The
more common forms are as follows:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e0def4;background-color:#232136;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-go" data-lang="go"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6e6a86"&gt;// These are different representations of the same literal&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ea9a97"&gt;binary&lt;/span&gt; &lt;span style="color:#908caa"&gt;:=&lt;/span&gt; &lt;span style="color:#f6c177"&gt;0b1101&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ea9a97"&gt;decimal&lt;/span&gt; &lt;span style="color:#908caa"&gt;:=&lt;/span&gt; &lt;span style="color:#f6c177"&gt;13&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ea9a97"&gt;octal&lt;/span&gt; &lt;span style="color:#908caa"&gt;:=&lt;/span&gt; &lt;span style="color:#f6c177"&gt;0&lt;/span&gt;&lt;span style="color:#ea9a97"&gt;o15&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ea9a97"&gt;hexadecimal&lt;/span&gt; &lt;span style="color:#908caa"&gt;:=&lt;/span&gt; &lt;span style="color:#f6c177"&gt;0x0d&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="twos-complement"&gt;Two&amp;rsquo;s complement&lt;/h2&gt;
&lt;p&gt;For signed integer literals, two&amp;rsquo;s complement is an efficient method for storing
positive and negative values.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Left-most bit denotes the sign. (0 is positive, 1 is negative)&lt;/li&gt;
&lt;li&gt;Positive values are expressed in typical binary form&lt;/li&gt;
&lt;li&gt;Negative values are expressed in binary with the bits inverted + 1&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This allows for very easy addition and subtraction operations for the processor.
As an added benefit, there is also only one way to represent 0 rather than
potentially having a positive and negative 0.&lt;/p&gt;</description></item></channel></rss>