<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Engineer Sphere &#187; Basic Computer Engineering Concepts</title>
	<atom:link href="http://engineersphere.com/category/basic-computer-concepts/feed" rel="self" type="application/rss+xml" />
	<link>http://engineersphere.com</link>
	<description>All the cool kids are doing it.</description>
	<lastBuildDate>Thu, 08 Jul 2010 03:23:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Karnaugh Maps</title>
		<link>http://engineersphere.com/basic-computer-concepts/karnaugh-maps.html</link>
		<comments>http://engineersphere.com/basic-computer-concepts/karnaugh-maps.html#comments</comments>
		<pubDate>Tue, 29 Sep 2009 17:07:25 +0000</pubDate>
		<dc:creator>chrislego88</dc:creator>
				<category><![CDATA[Basic Computer Engineering Concepts]]></category>
		<category><![CDATA[Binary]]></category>
		<category><![CDATA[Boolean expressions]]></category>
		<category><![CDATA[K Maps]]></category>
		<category><![CDATA[Karnaugh Maps]]></category>
		<category><![CDATA[Truth Tables]]></category>

		<guid isPermaLink="false">http://engineersphere.com/?p=828</guid>
		<description><![CDATA[Karnaugh maps or K-maps for short are used for simplifying Boolean expressions. K-maps are constructed depending on the number of variables, or bits, in the expression. For example if the expression is f(A,B,C,D) = A + D, there are 4 bits to consider. Before starting to construct the K-Map you should first create the truth table [...]]]></description>
			<content:encoded><![CDATA[<p>Karnaugh maps or K-maps for short are used for simplifying Boolean expressions. K-maps are constructed depending on the number of variables, or bits, in the expression. For example if the expression is f(A,B,C,D) = A<img src='http://s.wordpress.com/latex.php?latex=%5Cscriptstyle%20%5Coverline%7BC%7D%20&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='\scriptstyle \overline{C} ' title='\scriptstyle \overline{C} ' class='latex' />  + D<img src='http://s.wordpress.com/latex.php?latex=%5Coverline%7BB%7D%20&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='\overline{B} ' title='\overline{B} ' class='latex' />, there are 4 bits to consider. Before starting to construct the K-Map you should first create the truth table for the function you are implementing. After this is done it is time to make the K-Map. First thing to do is to draw the box for the K-Map.</p>
<p><a href="http://upload.wikimedia.org/wikipedia/commons/6/62/K-map_4x4_empty.svg"><img src="http://upload.wikimedia.org/wikipedia/commons/thumb/6/62/K-map_4x4_empty.svg/275px-K-map_4x4_empty.svg.png" alt="File:K-map 4x4 empty.svg" width="275" height="275" /></a></p>
<p>Notice that the most significant bit (A) is on top followed by B and so on.On the top bar 00 stand for AB, 01 stand for A<img src='http://s.wordpress.com/latex.php?latex=%5Cscriptstyle%20%5Coverline%7BB%7D%20&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='\scriptstyle \overline{B} ' title='\scriptstyle \overline{B} ' class='latex' />, and so on. Also the order of the bits is not the standard binary counting order. The order is created in such a way that only one bit at a time is changed.</p>
<p>Once the table has been created it is time to take the data from the truth table to the K-Map. Copy all the outputs from the truth table onto the K-Map according to what the inputs are. For example, if<br />
ABCD | F<br />
0000  | 0<br />
0001  | 1<br />
0010  | 0<br />
etc.</p>
<p>Remember that the 3rd row is flipped with the 4th, so change the outputs accordingly.</p>
<p>After the K-Map has been filled in it is time to try to simplify the boolean expression. There are two ways to do this, either SOP (Sum of Products) or POS( Products of Sum). The difference between the two is what you group together. In SOP you would group all the 1&#8242;s in the K-Map together, and in POS you group the 0&#8242;s. In the examples, I will be using SOP.</p>
<p>What does grouping mean? Grouping means that if there 1&#8242;s which are next to each other than you can circle them together to create a simpler boolean expression in the end. The trick is that you can only circle an even number of 1&#8242;s. So if three 1&#8242;s are next to each other you can only circle them as groups of 2. It is possible to group 1&#8242;s at 0000 and 1000; 1000 and 1010; and so on.</p>
<p>For example<br />
CD<br />
AB    <span style="text-decoration: underline;">00   01    11      10</span><br />
00  |<span style="text-decoration: underline;"> 1 </span>| <span style="text-decoration: underline;"> 1   |   1   |   1   |</span><br />
01   | <span style="text-decoration: underline;"> 0 </span>|<span style="text-decoration: underline;"> 0   |   0   |   0  | </span><br />
11    | <span style="text-decoration: underline;"> 0 </span>|<span style="text-decoration: underline;"> 0  |   0   |   1   |</span><br />
10   | <span style="text-decoration: underline;"> 1 </span>|<span style="text-decoration: underline;"> 1  |   0   |   1   |</span></p>
<p><span>To simply this expression, you should group:</span></p>
<p><span>1.  all the 1&#8242;s in AB = 00<br />
2.  1&#8242;s from AB = 10 and C = 0<br />
3.  1&#8242;s from CD = 10 and A = 1</span></p>
<p><span>The way to simply the expression is you note the changes in bits in the groupings.<br />
In grouping 1: The only bits to stay the same are bits AB which stay at 00. So the simplified expression would be  <img src='http://s.wordpress.com/latex.php?latex=%5Coverline%7BA%7D&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='\overline{A}' title='\overline{A}' class='latex' /> * <img src='http://s.wordpress.com/latex.php?latex=%5Coverline%7BB%7D&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='\overline{B}' title='\overline{B}' class='latex' /><br />
In grouping 2 : The only bit to change is D. So the expression becomes A * <img src='http://s.wordpress.com/latex.php?latex=%5Coverline%7BB%7D&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='\overline{B}' title='\overline{B}' class='latex' /> * <img src='http://s.wordpress.com/latex.php?latex=%5Coverline%7BC%7D&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='\overline{C}' title='\overline{C}' class='latex' /><br />
In grouping 3: The only bit to change is B. So the expression becomes A* C * <img src='http://s.wordpress.com/latex.php?latex=%5Coverline%7BD%7D&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='\overline{D}' title='\overline{D}' class='latex' /></span></p>
<p><span>So the final expression would turn into F(A,B,C,D) = <img src='http://s.wordpress.com/latex.php?latex=%5Coverline%7BA%7D&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='\overline{A}' title='\overline{A}' class='latex' /> * <img src='http://s.wordpress.com/latex.php?latex=%5Coverline%7BB%7D&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='\overline{B}' title='\overline{B}' class='latex' /> + A * <img src='http://s.wordpress.com/latex.php?latex=%5Coverline%7BB%7D&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='\overline{B}' title='\overline{B}' class='latex' /> * <img src='http://s.wordpress.com/latex.php?latex=%5Coverline%7BC%7D&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='\overline{C}' title='\overline{C}' class='latex' /> + A* C * <img src='http://s.wordpress.com/latex.php?latex=%5Coverline%7BD%7D&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='\overline{D}' title='\overline{D}' class='latex' /></span></p>
<p>Note: This expression is not hazard free. To make hazard free group all possible 1&#8242;s together.</p>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://engineersphere.com/basic-electrical-concepts/complex-numbers.html" rel="bookmark" class="crp_title">Complex Numbers</a></li><li><a href="http://engineersphere.com/basic-electrical-concepts/acceptorsdonors-and-holeselectrons.html" rel="bookmark" class="crp_title">Calculating Electron and Hole Concentrations in a p-n Junction</a></li><li><a href="http://engineersphere.com/circuit-theory/mesh-current.html" rel="bookmark" class="crp_title">Mesh Current</a></li><li><a href="http://engineersphere.com/biomedical-engineering/biomedical-image-processing-iv.html" rel="bookmark" class="crp_title">Biomedical Image Processing &#8211; IV</a></li><li><a href="http://engineersphere.com/basic-electrical-concepts/inductors-and-capacitors-important-concepts.html" rel="bookmark" class="crp_title">Inductors and Capacitors &#8211; Important Concepts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://engineersphere.com/basic-computer-concepts/karnaugh-maps.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Finite State Machines</title>
		<link>http://engineersphere.com/basic-computer-concepts/finite-state-machines.html</link>
		<comments>http://engineersphere.com/basic-computer-concepts/finite-state-machines.html#comments</comments>
		<pubDate>Thu, 10 Sep 2009 04:01:00 +0000</pubDate>
		<dc:creator>Kyle</dc:creator>
				<category><![CDATA[Basic Computer Engineering Concepts]]></category>
		<category><![CDATA[Control Systems]]></category>
		<category><![CDATA[Electromagnetic Theory]]></category>
		<category><![CDATA[Finite state machines]]></category>
		<category><![CDATA[mealy machines]]></category>
		<category><![CDATA[moore machines]]></category>
		<category><![CDATA[state machines]]></category>

		<guid isPermaLink="false">http://engineersphere.com/?p=808</guid>
		<description><![CDATA[A Finite State Machine (FSM), or just state machine, is a model of behavior composed of a finite number of states. We use these in computer engineering to model a &#8220;machine&#8221; with primitive memory. Based on the signals  we recieve, we go to a certain state where information is processed, and then we wait for [...]]]></description>
			<content:encoded><![CDATA[<p>A Finite State Machine (FSM), or just state machine, is a model of behavior composed of a finite number of states. We use these in computer engineering to model a &#8220;machine&#8221; with primitive memory. Based on the signals  we recieve, we go to a certain state where information is processed, and then we wait for the signal that indicates we move to the next state.  There are two types of FSMs we will talk about: Moore machines and Mealy machines.</p>
<p><strong>Moore Machines</strong></p>
<p>Moore machines are state machines where the output is determined by only the current state, not the inputs. For example, if we  had designed a system where the state table looks like this:</p>
<table style="border-collapse: collapse; width: 207pt;" border="0" cellspacing="0" cellpadding="0" width="276">
<col style="width: 88pt;" width="117"></col>
<col style="width: 71pt;" width="95"></col>
<col style="width: 48pt;" width="64"></col>
<tbody>
<tr style="height: 18.75pt;" height="25">
<td style="height: 18.75pt; width: 88pt;" width="117" height="25">Current   State</td>
<td style="width: 71pt;" width="95">Next State</td>
<td style="width: 48pt;" width="64">Input</td>
</tr>
<tr style="height: 15pt;" height="20">
<td style="height: 15pt;" height="20">00</td>
<td>01</td>
<td>XX</td>
</tr>
<tr style="height: 15pt;" height="20">
<td style="height: 15pt;" height="20">01</td>
<td>10</td>
<td>XX</td>
</tr>
<tr style="height: 15pt;" height="20">
<td style="height: 15pt;" height="20">10</td>
<td>11</td>
<td>XX</td>
</tr>
<tr style="height: 15pt;" height="20">
<td style="height: 15pt;" height="20">11</td>
<td>00</td>
<td>XX</td>
</tr>
</tbody>
</table>
<p><tt></tt></p>
<p>we can see that it doesn&#8217;t even matter what the input and outputs are, the next state only depends on the current state. A typical example of Moore style state machines is a synchronous circuit composed of flip-flops connected to a clock. The state can only change when the clock pulses, and for flip-flops, the output(next state) is a function of the input(current state).</p>
<p><strong>Mealy Machines</strong></p>
<p>By contrast there are FSMs called Mealy machines where the next state is a function of both the current state, and the input.</p>
<p>Consider the truth table we discussed earler. In our Moore state machine design, we didn&#8217;t care what the input was. Now, however, we have decided that if the current state is 00 and the input is 0 , the next state is 01 .</p>
<table style="border-collapse: collapse; width: 207pt;" border="0" cellspacing="0" cellpadding="0" width="276">
<col style="width: 88pt;" width="117"></col>
<col style="width: 71pt;" width="95"></col>
<col style="width: 48pt;" width="64"></col>
<tbody>
<tr style="height: 18.75pt;" height="25">
<td style="height: 18.75pt; width: 88pt;" width="117" height="25">Current   State</td>
<td style="width: 71pt;" width="95">Next State</td>
<td style="width: 48pt;" width="64">Input</td>
</tr>
<tr style="height: 15pt;" height="20">
<td style="height: 15pt;" height="20">00</td>
<td>01</td>
<td>0</td>
</tr>
<tr style="height: 15pt;" height="20">
<td style="height: 15pt;" height="20">00</td>
<td>01</td>
<td>1</td>
</tr>
<tr style="height: 15pt;" height="20">
<td style="height: 15pt;" height="20">01</td>
<td>10</td>
<td>0</td>
</tr>
<tr style="height: 15pt;" height="20">
<td style="height: 15pt;" height="20">01</td>
<td>10</td>
<td>1</td>
</tr>
<tr style="height: 15pt;" height="20">
<td style="height: 15pt;" height="20">10</td>
<td>11</td>
<td>0</td>
</tr>
<tr style="height: 15pt;" height="20">
<td style="height: 15pt;" height="20">10</td>
<td>11</td>
<td>1</td>
</tr>
<tr style="height: 15pt;" height="20">
<td style="height: 15pt;" height="20">11</td>
<td>00</td>
<td>0</td>
</tr>
<tr style="height: 15pt;" height="20">
<td style="height: 15pt;" height="20">11</td>
<td>00</td>
<td>1</td>
</tr>
</tbody>
</table>
<p>We can see above that the next state is a function of the current state, and the input. A real world example of a  Mealy machine is a mathematical cypher machine.</p>
<p>Mealy machines are typically sequential logic, whereas Moore machines are combinatorial logic.</p>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://engineersphere.com/basic-electrical-concepts/electrical-power.html" rel="bookmark" class="crp_title">Electrical Power</a></li><li><a href="http://engineersphere.com/basic-electrical-concepts/internal-resistance-and-the-effects-of-loading.html" rel="bookmark" class="crp_title">Internal Resistance and the Effects of Loading</a></li><li><a href="http://engineersphere.com/matlab/root-locus-method-in-matlab.html" rel="bookmark" class="crp_title">Root Locus Method in MATLAB</a></li><li><a href="http://engineersphere.com/basic-computer-concepts/karnaugh-maps.html" rel="bookmark" class="crp_title">Karnaugh Maps</a></li><li><a href="http://engineersphere.com/biomedical-engineering/biomedical-image-processing-iv.html" rel="bookmark" class="crp_title">Biomedical Image Processing &#8211; IV</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://engineersphere.com/basic-computer-concepts/finite-state-machines.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ABEL Logic Simplified</title>
		<link>http://engineersphere.com/basic-computer-concepts/abel-logic-simplified.html</link>
		<comments>http://engineersphere.com/basic-computer-concepts/abel-logic-simplified.html#comments</comments>
		<pubDate>Mon, 27 Jul 2009 09:48:36 +0000</pubDate>
		<dc:creator>Eli</dc:creator>
				<category><![CDATA[Basic Computer Engineering Concepts]]></category>
		<category><![CDATA[ABEL]]></category>
		<category><![CDATA[ABEL Logic]]></category>
		<category><![CDATA[ABEL Logic Simplified]]></category>
		<category><![CDATA[Digital Logic]]></category>

		<guid isPermaLink="false">http://engineersphere.com/?p=499</guid>
		<description><![CDATA[ABEL Logic is the simpliest way to turn an idea in your brain to a working digital circuit.  It is very easy to understand, works like english and functions like a digital circuit so you can easily turn any idea into a working PLD chip that&#8217;ll do exactly what you want.  To get started writing [...]]]></description>
			<content:encoded><![CDATA[<p>ABEL Logic is the simpliest way to turn an idea in your brain to a working digital circuit.  It is very easy to understand, works like english and functions like a digital circuit so you can easily turn any idea into a working PLD chip that&#8217;ll do exactly what you want.  To get started writing your first ABEL powered device you just need to know your inputs, your outputs and what you want your outputs to do based on your inputs.  This is much simpler than it sounds.</p>
<p>Let&#8217;s say you have two buttons and a lightbulb.  You want to turn on the light anytime one of the buttons is pushed. We&#8217;ll first give the buttons names and call them our inputs.  Button one will be called <img src='http://s.wordpress.com/latex.php?latex=B_%7B1%7D%20&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='B_{1} ' title='B_{1} ' class='latex' /> and button two will be <img src='http://s.wordpress.com/latex.php?latex=B_%7B2%7D%20&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='B_{2} ' title='B_{2} ' class='latex' />.  We&#8217;ll call the light bulb L.  Since ABEL is a digital circuit that means for every input and output we only have two combinations 1 or 0, on or off.  We use this to represent if they produce power or not.  In the language we use the exclamation point to represent off <strong>!</strong>.</p>
<p><strong>First we check if button one is on:</strong><br />
<img src='http://s.wordpress.com/latex.php?latex=B_%7B1%7D%20%3D%20L%20&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='B_{1} = L ' title='B_{1} = L ' class='latex' /><br />
This says if button 1 is on then light is on.  If we wanted to say button 1 is off then the light is on we would write that as <strong>!</strong><img src='http://s.wordpress.com/latex.php?latex=B_%7B1%7D%20%3D%20L%20&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='B_{1} = L ' title='B_{1} = L ' class='latex' />.  That would cause it so every time the button isn&#8217;t pressed the light would come on, and the light would turn off when it is pressed.  This is known as an inverter.</p>
<p>Next we check if button two is on:<br />
<img src='http://s.wordpress.com/latex.php?latex=B_%7B2%7D%20%3D%20L%20&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='B_{2} = L ' title='B_{2} = L ' class='latex' /><br />
This does the same thing for button two.  The problem here is we can&#8217;t use both because then if only one button is pressed then the light gets both an on and an off signal, which is called a &#8220;Data contention error.&#8221;  Which can cause problems for our little bulb buddy when the circuit sends the wrong amperage with the same voltage.  So we have to combine them into one single statement using the english word OR.</p>
<p><img src='http://s.wordpress.com/latex.php?latex=B_%7B1%7D%20&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='B_{1} ' title='B_{1} ' class='latex' /> OR <img src='http://s.wordpress.com/latex.php?latex=B_%7B2%7D%20%3D%20L%20&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='B_{2} = L ' title='B_{2} = L ' class='latex' /><strong><br />
</strong></p>
<p>This means if button 1 OR button 2 is pressed then light is ON. In ABEL we simplify the OR statement by using the character +.  So it becomes</p>
<p><img src='http://s.wordpress.com/latex.php?latex=B_%7B1%7D%20%2B%20B_%7B2%7D%20%3D%20L%20&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='B_{1} + B_{2} = L ' title='B_{1} + B_{2} = L ' class='latex' /></p>
<p>If Mr. Bossman comes to use later and says whoah there!  I want it so the light only comes on if button 2 is pressed and button one is not then we would use our inverter character (the <strong>!</strong>) to change the circuit to:</p>
<p><strong>!</strong><img src='http://s.wordpress.com/latex.php?latex=B_%7B1%7D%20B_%7B2%7D%20%3DL%20&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='B_{1} B_{2} =L ' title='B_{1} B_{2} =L ' class='latex' /></p>
<p>This literally translates to NOT button1 AND button 2 turns light on.  Everything else keeps the light off.  We can use the OR make other combinations the boss might specify such as if button 1 is not pressed but button 2 is pressed or if both buttons are pressed at the same time.  The OR is represented by the addition symbol +.  The AND symbol is represented by the multiplication.  Which is literally what they mean in standard mathematics.</p>
<p><strong>!</strong><img src='http://s.wordpress.com/latex.php?latex=B_%7B1%7D%20B_%7B2%7D%20%2B%20B_%7B1%7D%20B_%7B2%7D%20%3D%20L%20&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='B_{1} B_{2} + B_{1} B_{2} = L ' title='B_{1} B_{2} + B_{1} B_{2} = L ' class='latex' /></p>
<p>This means the light comes on if NOT button1 AND button 2 is pressed or if button 1 and button 2 are pressed.</p>
<p><strong>Building A Garage Door Opener Using ABEL</strong><br />
Using our knowledge we just learned we can build just about anything by putting it into ABEL.  Let&#8217;s pretend Mr. Bossman tells us he wants us to build him a microchip that will control a garage door opener.  If the opener has power then it will open the door, if it doesn&#8217;t then it will shut the door.  There are two buttons and a safety laser.  One button is on the inside of the garage and the other on the outside.  There is a safety laser that is always on and if something blocks it will send a voltage to the circuit at which time we need to open the door immediately to make sure we don&#8217;t continue to shut it on a Fluffins the mildly braindamaged neighborhood cat.</p>
<p>While taking notes on what Mr. Bossman is telling us he wants we write:  Open door if Inside Button is on AND Laser is off OR open door if outside button is on AND Laser off OR open door if Laser is on.  In ABEL logic this gets written exactly as it is spoken, and we will use IB as inside button and OB as outside button and L as the laser and finally the door opener as the output of O.</p>
<p><strong>IB!L+OB!L + !L = O</strong></p>
<p>It really is that simple!  We can put that equation into an ABEL enabled PLD software and get a chip that when plugged into the correct inputs and outputs gives us a functioning garage door opener.  There are other commands and syntaxes to help you get really advanced with it.  Here is a great list of them: <a href="http://mazsola.iit.uni-miskolc.hu/cae/docs/xabel.html">List of ABEL HDL commands</a>.</p>
<p><strong>Question for the comments!</strong><br />
How would you use ABEL to design a street light traffic system?  You have two total sensor pads, one at each street crossing.  When a car stops on the sensor pads the sensor sends voltage to the controller.  You have two outputs, a green light and a red light.  When the light has voltage the red light is ON and the green is OFF.  When it is at a logic 0 (off) it flips the red light off and the green light on.  See if you can figure it out!</p>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://engineersphere.com/introduction/dont-you-just-hate-it-when.html" rel="bookmark" class="crp_title">Don&#8217;t you just hate it when&#8230;</a></li><li><a href="http://engineersphere.com/basic-electrical-concepts/amplifiers-part-ii.html" rel="bookmark" class="crp_title">Amplifiers &#8211; Part II</a></li><li><a href="http://engineersphere.com/math/how-to-count-in-binary.html" rel="bookmark" class="crp_title">How To Count In Binary</a></li><li><a href="http://engineersphere.com/biomedical-engineering/biomedical-image-processing-ii.html" rel="bookmark" class="crp_title">Biomedical Image Processing &#8211; II</a></li><li><a href="http://engineersphere.com/basic-computer-concepts/finite-state-machines.html" rel="bookmark" class="crp_title">Finite State Machines</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://engineersphere.com/basic-computer-concepts/abel-logic-simplified.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How To Count In Binary</title>
		<link>http://engineersphere.com/math/how-to-count-in-binary.html</link>
		<comments>http://engineersphere.com/math/how-to-count-in-binary.html#comments</comments>
		<pubDate>Mon, 27 Jul 2009 08:43:15 +0000</pubDate>
		<dc:creator>Eli</dc:creator>
				<category><![CDATA[Basic Computer Engineering Concepts]]></category>
		<category><![CDATA[Math]]></category>
		<category><![CDATA[Binary]]></category>

		<guid isPermaLink="false">http://engineersphere.com/?p=492</guid>
		<description><![CDATA[Binary numbers work exactly like our decimal system. It&#8217;s called Decimal because it has 10 total combinations per digit. For instance we count 0-1-2-3-4-5-6-7-8-9 which gives us 10 total numbers we can use in a single digit. When we run out of digits we add one to the leading digit and switch the current digit [...]]]></description>
			<content:encoded><![CDATA[<p>Binary numbers work exactly like our decimal system. It&#8217;s called Decimal because it has 10 total combinations per digit. For instance we count 0-1-2-3-4-5-6-7-8-9 which gives us 10 total numbers we can use in a single digit. When we run out of digits we add one to the leading digit and switch the current digit to the first combination. For instance when we count in decimal and we get to 19 we add 1 to the first digit making it a 2 and turn the current digit to our first combination,a zero, making a 20. Whenever there is no digit in front we assume its a zero so when we count to 10 and we&#8217;re at 9 we add one to the first digit turning it from a zero to a one. Then we turn our current digit, the nine, to a zero making 10. It works infinitely so we can be at 999,999 and our next number would be 1,000,000.</p>
<p>Binary counting is exactly the same only even simpler because it only has two combinations, 0-1. The only combinations in digits you have available to you is zero or one. So you start your count with 0. Then you add one to bring you to <strong>1</strong>. Then when you add another, since you&#8217;re at your max combinations for that single digit you need to add one to the leading digit and turn your current digit to zero. So the decimal #2 becomes 10 in binary. That may look like a 10 in decimal but in binary since you only have two combinations per digit it translate to the number 2. You&#8217;re next number would be done the same way. You add one to your current digit which in the 10 would become <strong>11</strong>. This becomes the number 3 in decimal. Once again to add one you need to add one to the leading digit which would be the <strong><span style="text-decoration: underline;">1</span>1</strong> and turn your current digit to zero making it <strong>100</strong> for the count of four. Much like learning to count it gets much simpler the more you practice.</p>
<p><strong>Try figuring out what the next number would be in this sequence:</strong><br />
0000=0<br />
0001=1<br />
0010=2<br />
0011=3<br />
0100=4<br />
0101=5<br />
0110=6<br />
0111=7<br />
1000=8<br />
1001=9<br />
1010=10<br />
1011=11<br />
____=12</p>
<p><em>Answer: 1100</em></p>
<p><strong>Figuring Out Long Numbers In Binary</strong><br />
As mentioned binary works exactly like our decimal system only it has two combinations per digit instead of ten. When you&#8217;re brain is trying to figure out how large a decimal number is it looks at all the placements of the digits and their values. For instance the number 321 is <img src='http://s.wordpress.com/latex.php?latex=3%20x%2010%5E2%20%2B%202%20x%2010%5E1%20%2B%201%20x%2010%5E0%20%3D%20321%20&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='3 x 10^2 + 2 x 10^1 + 1 x 10^0 = 321 ' title='3 x 10^2 + 2 x 10^1 + 1 x 10^0 = 321 ' class='latex' />. The 10 base number is because there is 10 combinations per digit. The power is the placement of that digit and the number being multiplied by it is the number in that position. So to get the number 400 it is <img src='http://s.wordpress.com/latex.php?latex=4%20x%2010%5E2%20&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='4 x 10^2 ' title='4 x 10^2 ' class='latex' />. In reality this is done for every digit so 50 would actually be <img src='http://s.wordpress.com/latex.php?latex=5%20x%2010%5E1%20%2B%200%20x%2010%5E0%20&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='5 x 10^1 + 0 x 10^0 ' title='5 x 10^1 + 0 x 10^0 ' class='latex' />. Since anything multiplied by zero is zero we tend to ignore those as to not confuse ourselves when doing large numbers. Binary is done the same way except since there is only ones and zeros you only need to concern yourself with the ones. So the binary number 0100 would be <img src='http://s.wordpress.com/latex.php?latex=1%20x%202%5E2%20%3D%204&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='1 x 2^2 = 4' title='1 x 2^2 = 4' class='latex' /> Therefore 1010 would be <img src='http://s.wordpress.com/latex.php?latex=1%20x%202%5E3%20%2B%201%20x%202%5E1%20%3D%2010%20&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='1 x 2^3 + 1 x 2^1 = 10 ' title='1 x 2^3 + 1 x 2^1 = 10 ' class='latex' />. This makes it easy to figure out really long binary numbers such as 00110111 because logically on paper that would be <img src='http://s.wordpress.com/latex.php?latex=1%20x%202%5E5%20%2B%201%20x%202%5E4%20%2B%201%20x%202%5E2%20%2B%201%20x%202%5E1%20%2B%201%20x%202%5E0%20&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='1 x 2^5 + 1 x 2^4 + 1 x 2^2 + 1 x 2^1 + 1 x 2^0 ' title='1 x 2^5 + 1 x 2^4 + 1 x 2^2 + 1 x 2^1 + 1 x 2^0 ' class='latex' /> for a decimal answer of 55.</p>
<p><strong>Using What You&#8217;ve Learned Try To Figure Out The Decimal Equivilant of This Binary Number:</strong><br />
10110111</p>
<p><em>Answer: 183</em></p>
<p><strong>Bits And Bytes</strong><br />
When people talk about bits and bytes of binary they&#8217;re referring to how many assumed leading zeros are in the number. So a 4 bit binary number of two would be 0010. An 8bit version of the number 2 would be 00000010. As with decimal the zeros are always there they just aren&#8217;t shown unless you need to specify a maximum amount that you want. So if you said you want a 8 bit binary representation of the number 85 you would get 01010101. A byte is simply 8 bits. So if you said you wanted a 2 byte representation of the number 85 you would get 0000000001010101 for a total of 16 bits.</p>
<p><strong>Good luck and happy counting!</strong></p>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://engineersphere.com/math/calculus/irrational-numbers.html" rel="bookmark" class="crp_title">Irrational Numbers</a></li><li><a href="http://engineersphere.com/basic-computer-concepts/karnaugh-maps.html" rel="bookmark" class="crp_title">Karnaugh Maps</a></li><li><a href="http://engineersphere.com/math/calculus/rational-numbers.html" rel="bookmark" class="crp_title">Rational Numbers</a></li><li><a href="http://engineersphere.com/basic-computer-concepts/abel-logic-simplified.html" rel="bookmark" class="crp_title">ABEL Logic Simplified</a></li><li><a href="http://engineersphere.com/circuit-theory/mesh-current.html" rel="bookmark" class="crp_title">Mesh Current</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://engineersphere.com/math/how-to-count-in-binary.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Complex Numbers</title>
		<link>http://engineersphere.com/basic-electrical-concepts/complex-numbers.html</link>
		<comments>http://engineersphere.com/basic-electrical-concepts/complex-numbers.html#comments</comments>
		<pubDate>Sat, 25 Jul 2009 21:46:10 +0000</pubDate>
		<dc:creator>Luke</dc:creator>
				<category><![CDATA[Basic Computer Engineering Concepts]]></category>
		<category><![CDATA[Basic Electrical Engineering Concepts]]></category>
		<category><![CDATA[Complex Number]]></category>
		<category><![CDATA[Complex Numbers]]></category>

		<guid isPermaLink="false">http://engineersphere.com/?p=226</guid>
		<description><![CDATA[Basics A complex number can be represented graphically in the complex plane. This point can be described in several different ways: Note that the third relationship is derived when substituting these trigonometric functions into the first relationship: Also: Addition/Subtraction of Complex Numbers: Rectangular: Polar: There is no simple way of doing this. The best method [...]]]></description>
			<content:encoded><![CDATA[<p><span style="text-decoration: underline"><strong>Basics</strong></span></p>
<p>A complex number can be represented graphically in the complex plane.</p>
<p style="text-align: center"><img class="aligncenter" src="http://img31.imageshack.us/img31/6778/complex.png/" alt="Graph x + jy" /></p>
<p>This point can be described in several different ways:</p>
<p style="text-align: center"><img src='http://s.wordpress.com/latex.php?latex=x%2Bjy%20%3D%20r%20e%5E%7B%5Cj%20%5Ctheta%7D%20%3D%20r%20cos%5Ctheta%20%2B%20r%20j%20sin%5Ctheta%20&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='x+jy = r e^{\j \theta} = r cos\theta + r j sin\theta ' title='x+jy = r e^{\j \theta} = r cos\theta + r j sin\theta ' class='latex' /></p>
<p>Note that the third relationship is derived when substituting these trigonometric functions into the first relationship:</p>
<p style="text-align: center"><img src='http://s.wordpress.com/latex.php?latex=x%20%3D%20r%20cos%5Ctheta%20%5Cquad%20%5C%26%20%5Cquad%20y%20%3D%20r%20sin%5Ctheta%20&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='x = r cos\theta \quad \&amp; \quad y = r sin\theta ' title='x = r cos\theta \quad \&amp; \quad y = r sin\theta ' class='latex' /></p>
<p>Also:</p>
<p style="text-align: center"><img src='http://s.wordpress.com/latex.php?latex=%28x%20%5E%20%7B2%7D%20%2B%20y%20%5E%7B2%7D%29%20%5E%20%7B%20%5Cfrac%7B1%7D%7B2%7D%7D%20%3D%20r%20%5Cquad%20%5C%26%20%5Cquad%20%5Ctheta%20%3D%20tan%20%5E%20%7B-1%7D%28%20%5Cfrac%7By%7D%7Bx%7D%29%20&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='(x ^ {2} + y ^{2}) ^ { \frac{1}{2}} = r \quad \&amp; \quad \theta = tan ^ {-1}( \frac{y}{x}) ' title='(x ^ {2} + y ^{2}) ^ { \frac{1}{2}} = r \quad \&amp; \quad \theta = tan ^ {-1}( \frac{y}{x}) ' class='latex' /></p>
<p style="text-align: left"><span style="text-decoration: underline"><strong>Addition/Subtraction of Complex Numbers:</strong></span></p>
<p style="text-align: left"><span style="text-decoration: underline">Rectangular:</span> <img src='http://s.wordpress.com/latex.php?latex=z_%7B1%7D%20%3D%20x_%7B1%7D%20%2B%20j%20y_%7B1%7D%20%5Cquad%20%5C%26%20%5Cquad%20z_%7B2%7D%20%3D%20x_%7B2%7D%20%2B%20jy_%7B2%7D%20&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='z_{1} = x_{1} + j y_{1} \quad \&amp; \quad z_{2} = x_{2} + jy_{2} ' title='z_{1} = x_{1} + j y_{1} \quad \&amp; \quad z_{2} = x_{2} + jy_{2} ' class='latex' /></p>
<p style="text-align: left"><img src='http://s.wordpress.com/latex.php?latex=z_%7B1%7D%20%2B%20z_%7B2%7D%20%3D%20%28x_%7B1%7D%20%2B%20x_%7B2%7D%29%20%2B%20j%28%20y_%7B1%7D%20%2B%20y_%7B2%7D%29%20&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='z_{1} + z_{2} = (x_{1} + x_{2}) + j( y_{1} + y_{2}) ' title='z_{1} + z_{2} = (x_{1} + x_{2}) + j( y_{1} + y_{2}) ' class='latex' /></p>
<p style="text-align: left"><img src='http://s.wordpress.com/latex.php?latex=z_%7B1%7D%20-%20z_%7B2%7D%20%3D%20%28x_%7B1%7D%20-%20x_%7B2%7D%29%20%2B%20j%28%20y_%7B1%7D%20-%20y_%7B2%7D%29%20&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='z_{1} - z_{2} = (x_{1} - x_{2}) + j( y_{1} - y_{2}) ' title='z_{1} - z_{2} = (x_{1} - x_{2}) + j( y_{1} - y_{2}) ' class='latex' /></p>
<p style="text-align: left"><span style="text-decoration: underline">Polar:</span> There is no simple way of doing this. The best method would be to convert to rectangular form using the formula: <img src='http://s.wordpress.com/latex.php?latex=r%20cos%5Ctheta%20%2B%20r%20j%20sin%5Ctheta%20&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='r cos\theta + r j sin\theta ' title='r cos\theta + r j sin\theta ' class='latex' /></p>
<p style="text-align: left"><span style="text-decoration: underline"><strong>Multiplication/Division of Complex Numbers:</strong></span></p>
<p style="text-align: left"><span style="text-decoration: underline">Rectangular:</span> <img src='http://s.wordpress.com/latex.php?latex=z_%7B1%7D%20%3D%20x_%7B1%7D%20%2B%20j%20y_%7B1%7D%20%5Cquad%20%5C%26%20%5Cquad%20z_%7B2%7D%20%3D%20x_%7B2%7D%20%2B%20jy_%7B2%7D%20&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='z_{1} = x_{1} + j y_{1} \quad \&amp; \quad z_{2} = x_{2} + jy_{2} ' title='z_{1} = x_{1} + j y_{1} \quad \&amp; \quad z_{2} = x_{2} + jy_{2} ' class='latex' /></p>
<p style="text-align: left"><img src='http://s.wordpress.com/latex.php?latex=z_%7B1%7D%20%5Ccdot%20z_%7B2%7D%20%3D%20%28x_%7B1%7D%20%2B%20j%20y_%7B1%7D%29%28x_%7B2%7D%20%2B%20j%20y_%7B2%7D%29%20%3D%20x_%7B1%7Dx_%7B2%7D%20%2B%20j%28x_%7B2%7Dy_%7B1%7D%20%2B%20x_%7B1%7Dy_%7B2%7D%29%20-%20y_%7B1%7Dy_%7B2%7D&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='z_{1} \cdot z_{2} = (x_{1} + j y_{1})(x_{2} + j y_{2}) = x_{1}x_{2} + j(x_{2}y_{1} + x_{1}y_{2}) - y_{1}y_{2}' title='z_{1} \cdot z_{2} = (x_{1} + j y_{1})(x_{2} + j y_{2}) = x_{1}x_{2} + j(x_{2}y_{1} + x_{1}y_{2}) - y_{1}y_{2}' class='latex' /></p>
<p style="text-align: left"><img src='http://s.wordpress.com/latex.php?latex=%5Cfrac%7Bz_%7B1%7D%7D%7Bz_%7B2%7D%7D%20%3D%20%5Cfrac%7Bx_%7B1%7D%20%2B%20j%20y_%7B1%7D%7D%7Bx_%7B2%7D%20%2B%20jy_%7B2%7D%7D%28%5Cfrac%7Bx_%7B2%7D%20-%20j%20y_%7B2%7D%7D%7Bx_%7B2%7D%20-%20jy_%7B2%7D%7D%29%20%3D%20%5Cfrac%7Bx_%7B1%7Dx_%7B2%7D%20%2B%20j%28x_%7B2%7Dy_%7B1%7D%20-%20x_%7B1%7Dy_%7B2%7D%29%20%2B%20y_%7B1%7Dy_%7B2%7D%7D%7Bx_%7B2%7D%5E%7B2%7D%2By_%7B2%7D%5E%7B2%7D%7D&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='\frac{z_{1}}{z_{2}} = \frac{x_{1} + j y_{1}}{x_{2} + jy_{2}}(\frac{x_{2} - j y_{2}}{x_{2} - jy_{2}}) = \frac{x_{1}x_{2} + j(x_{2}y_{1} - x_{1}y_{2}) + y_{1}y_{2}}{x_{2}^{2}+y_{2}^{2}}' title='\frac{z_{1}}{z_{2}} = \frac{x_{1} + j y_{1}}{x_{2} + jy_{2}}(\frac{x_{2} - j y_{2}}{x_{2} - jy_{2}}) = \frac{x_{1}x_{2} + j(x_{2}y_{1} - x_{1}y_{2}) + y_{1}y_{2}}{x_{2}^{2}+y_{2}^{2}}' class='latex' /></p>
<p>When multiplying two complex numbers in rectangular form, the FOIL method must be used. When dividing complex numbers in rectangular form, multiply the numerator and denominator by the complex conjugate of the denominator.</p>
<p style="text-align: left"><span style="text-decoration: underline">Polar:</span> <img src='http://s.wordpress.com/latex.php?latex=z_%7B1%7D%20%3D%20c_%7B1%7D%20e%20%5E%20%7Bj%20%5Ctheta_%7B1%7D%7D%20%5Cquad%20%5C%26%20%5Cquad%20z_%7B2%7D%20%3D%20c_%7B2%7D%20e%20%5E%20%7Bj%20%5Ctheta_%7B2%7D%7D%20&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='z_{1} = c_{1} e ^ {j \theta_{1}} \quad \&amp; \quad z_{2} = c_{2} e ^ {j \theta_{2}} ' title='z_{1} = c_{1} e ^ {j \theta_{1}} \quad \&amp; \quad z_{2} = c_{2} e ^ {j \theta_{2}} ' class='latex' /></p>
<p><img src='http://s.wordpress.com/latex.php?latex=z_%7B1%7D%20%5Ccdot%20z_%7B2%7D%20%3D%20%28c_%7B1%7D%20e%20%5E%20%7Bj%20%5Ctheta_%7B1%7D%7D%29%28c_%7B2%7D%20e%20%5E%20%7Bj%20%5Ctheta_%7B2%7D%7D%29%20%3D%20c_%7B1%7D%20c_%7B2%7D%20e%20%5E%20%7Bj%28%5Ctheta_%7B1%7D%20%2B%20%5Ctheta_%7B2%7D%29%7D%20&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='z_{1} \cdot z_{2} = (c_{1} e ^ {j \theta_{1}})(c_{2} e ^ {j \theta_{2}}) = c_{1} c_{2} e ^ {j(\theta_{1} + \theta_{2})} ' title='z_{1} \cdot z_{2} = (c_{1} e ^ {j \theta_{1}})(c_{2} e ^ {j \theta_{2}}) = c_{1} c_{2} e ^ {j(\theta_{1} + \theta_{2})} ' class='latex' /></p>
<p><img src='http://s.wordpress.com/latex.php?latex=%5Cfrac%7Bz_%7B1%7D%7D%7Bz_%7B2%7D%7D%20%3D%20%28%5Cfrac%7Bc_%7B1%7D%7D%7Bc_%7B2%7D%7D%29%20e%20%5E%20%7Bj%28%5Ctheta_%7B1%7D%20-%20%5Ctheta_%7B2%7D%29%7D%20&#038;bg=efe5d9&#038;fg=000000&#038;s=0' alt='\frac{z_{1}}{z_{2}} = (\frac{c_{1}}{c_{2}}) e ^ {j(\theta_{1} - \theta_{2})} ' title='\frac{z_{1}}{z_{2}} = (\frac{c_{1}}{c_{2}}) e ^ {j(\theta_{1} - \theta_{2})} ' class='latex' /></p>
<p><span style="color: #000000"><br />
</span></p>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://engineersphere.com/basic-electrical-concepts/acceptorsdonors-and-holeselectrons.html" rel="bookmark" class="crp_title">Calculating Electron and Hole Concentrations in a p-n Junction</a></li><li><a href="http://engineersphere.com/matlab/root-locus-method-in-matlab.html" rel="bookmark" class="crp_title">Root Locus Method in MATLAB</a></li><li><a href="http://engineersphere.com/biomedical-engineering/biomedical-image-processing-ii.html" rel="bookmark" class="crp_title">Biomedical Image Processing &#8211; II</a></li><li><a href="http://engineersphere.com/biomedical-engineering/biomedical-image-processing-iv.html" rel="bookmark" class="crp_title">Biomedical Image Processing &#8211; IV</a></li><li><a href="http://engineersphere.com/basic-computer-concepts/karnaugh-maps.html" rel="bookmark" class="crp_title">Karnaugh Maps</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://engineersphere.com/basic-electrical-concepts/complex-numbers.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
