
Helloooo! I am Moose! They/Them/He/Him I am a embedded software engineer with autism, depression and anxiaty ( Wooo! ). I post about... whatever I want... software things, mental health things... whatever I feel like Feel very wellcome to send me asks about... anything that strikes your fancy :3
266 posts
What Is Half-adder And Full-adder Combinational Circuits?
What is half-adder and full-adder combinational circuits?
So this question came up in the codeblr discord server, and I thought I would share my answer here too :3
First, a combinational circuit simply means a circuit where the outputs only depends on its input. ( combinational means "Combine" as in, combining the inputs to give some output )
It is a bit like a pure function. It is opposed to circuits like latches which remembers 1 bit. Their output depends on their inputs AND their state.
These circuits can be shown via their logic gates, or truth tables. I will explain using only words and the circuits, but you can look up the truth tablet for each of the circuits I talk about to help understand.

Ok, so an in the case of electronics is a circuit made with logic gates ( I... assume you know what they are... Otherwise ask and I can explain them too ) that adds 2 binary numbers, each which have only 1 character.
So one number is 1 or 0
And the other number is 1 or 0
So the possible outputs are are 0, 1 and 2.
Since you can only express from 0 to 1 with one binary number, and 0 to 3 with 2, we need to output 2 binary numbers to give the answer. So the output is 2 binary numbers
00 = 0
01 = 1
10 = 2
11 = 3 // This can never happen with a half adder. The max possible result is 2
Each character will be represented with a wire, and a wire is a 0 if it is low voltage (usually ground, or 0 volts) and a 1 if it is high voltage (Voltage depends. Can be 5 volts, 3.3, 12 or something else. )
BUT if you only use half adders, you can ONLY add 2 single character binary numbers together. Never more.
If you want to add more together, you need a full adder. This takes 3 single character binary numbers, and adds them and outputs a single 2 character number.
This means it have 3 inputs and 2 outputs.

We have 2 outputs because we need to give a result that is 0, 1, 2 or 3
Same binary as before, except now we CAN get a 11 (which is 3)
And we can chain full adders together to count as many inputs as we want.
So why ever use a half adder? Well, every logic gate cirquit can be made of NAND (Not and) gates, so we usually compare complexity in how many NAND gates it would take to make a circuit. More NAND gates needed means the circuit is slower and more expensive to make.
A half adder takes 5 NAND gates to make
A full adder takes 9 NAND gates.
So only use a full adder if you need one.
Geeks for Geeks have a page for each of the most normal basic cirquits:

I hope that made sense, and was useful :3
-
hydralisk98 reblogged this · 7 months ago
-
hydralisk98 liked this · 7 months ago
-
admitit liked this · 1 year ago
-
sweetpoetrygladiator liked this · 1 year ago
-
schlimedup reblogged this · 1 year ago
-
schlimedup liked this · 1 year ago
-
theguyrunningsouth reblogged this · 1 year ago
-
theguyrunningsouth liked this · 1 year ago
-
taperwolf reblogged this · 1 year ago
-
taperwolf liked this · 1 year ago
-
nounofrassilon liked this · 1 year ago
-
moose-mousse liked this · 1 year ago
-
noctumsolis reblogged this · 1 year ago
-
ofairandbeauteousone liked this · 1 year ago
-
commodorez reblogged this · 1 year ago
-
it-becomes-so liked this · 1 year ago
-
somniphobicfox liked this · 1 year ago
-
doctorfurbenstein liked this · 1 year ago
-
moose-mousse reblogged this · 1 year ago
-
illustrious-carbonic-eels liked this · 1 year ago
-
the-windup-official liked this · 1 year ago
-
blake447 reblogged this · 1 year ago
-
memorias-de-una-computadora reblogged this · 1 year ago
-
goldenspirits reblogged this · 1 year ago
-
goldenspirits liked this · 1 year ago
-
mbvisualarts reblogged this · 1 year ago
-
mbvisualarts liked this · 1 year ago
-
datamodel-of-disaster liked this · 1 year ago
-
unishine liked this · 1 year ago
-
vez0k1 reblogged this · 1 year ago
-
studywithvictory liked this · 1 year ago
-
arbiewebbjr liked this · 1 year ago
-
tired-goblin liked this · 1 year ago
-
cyberfolktale liked this · 1 year ago
-
quietmarie liked this · 1 year ago
More Posts from Moose-mousse

So I made a GUI for my parents Campsite. They wanted a GUI on tablets, or maybe a PC where they could have costumers input the needed info from them.
I can make native GUI's on WIndows, Linux, Android but… this is not the smartest way to make 95% of programs.
You just write a website in HTML, CSS and Javascript, and have all the code in 1 file (You can easily write your own "compiler" that simply copies CSS or Javascript from many files into one file if you want to work with multiple files… And yes, you can write that in HTML and Javascript too)
Here I simply take in the values as strings, sanitize and treat them, and then save them in LocalStorage on the browser.
When you type "Excel" into the first textbox, it reveals 2 extra buttons to download all the data as a CVS file that my parents can open in Excel, and to clear the local storage so the GUI is ready for the next day.
Simple, safe, easy, and will work on any machine that have a browser… meaning them all.
Forget chefs kiss. Programmers KISS is what you want :p
One of us! One of us!


Art by me, inspired by Tsuukochuo & dachell_Art
⟡ INTRODUCTION ⟡
Heya! I'm neospidey but you can call me neo ヾ(^∇^) I made this blog to share my journey as I learn to code. Hopefully, I'll find like-minded people and keep myself accountable.
I took a web dev course back in 2022 but my study technique was poor thus I quickly burned out. Now I'm trying to relearn html, css, php and javascript. If that sounds interesting, feel free to stick around ^-^
Disclaimer: I might post some art and other hobby related stuff every now and then.
⟡ ABOUT ⟡
I'm an autistic woman of many skills or rather... many hyperfixations, some of which I'm actually decent at (>▽<) The main one being art with gaming a close second! Here's a list of my other interest:
Juggling
Skateboarding
Reading (I'm currently reading Berserk and The Silmarillion)
D&D
Beekeeping
Music (some faves are TOOL, Crumb, Radiohead, MF DOOM and Death Grips)
Inspired by blogs like: @xiacodes, @dawncodes, @berry-codes, @zoeythebee
Know any good Cmake learning resources?
Welp. Nothing for it. I will have to stop botching things and actually sit down and learn CMake properly...
"Almost start googling around for resources before realizing a smarter way"
Oh! Codeblr! Anyone know of some good CMake learning resources?
"So I packed all the cables I tested back in their places, after marking them so I will(hoefully) not have to do this again." WHERE??? WHERE PAST MOOSE? WHERE DID YOU PUT THEM??? I AM TOO GOD DAMN STUPID SOMETIMES!!!
Frustrations
Following other developers, learners and makers are great. It facilitates learning and gives inspiration
But one thing that is often missing from people telling about how it is going, is the failures, frustrations and problems any developer will run into.
For this reason, two of my favorite maker youtube channels are Extractions&Ire (Chemistry) and Code Bullet (machine learning). Because these madlads are brave enough to not just show their process and result, but also their failures, mistakes and errors. And how they overcome them. Not always by learning (Sometimes making a dumb mistake is not really something you can learn from...)
It's good, because it's real.
Code tutorials and guides can give the impression that the normal process of development is "Open IDE, code, fix tiny typo error, compile, success". They don't do it out of malice, but out of a want to be concise. Which is fair.
So I also want to share when things do not go so well. I have programmed Atmel's AVR Chips for quite a while now. But I have done it mostly in microchip studio(former Atmel studio) and a bit in the arduino IDE. A job I am currently applying for, uses visual studio code. Which is fair enough. So to prepare for this specific job, and to acquire this quite good-to-have skill, I want to set that up for myself First things first, since I have not done this before, I cannot know if my code would have a weird error so I want to know everything else is working first. So I write a tiny program which simply have the microcontroller increase a number every 2 seconds and write it to my PC over UART. Takes 2 minutes.... I grab one of my Arduino Nano boards and a USB cable for it. And then... I cannot flash it... Its communication protocol have troubles.
I have seen this before. It is to do with the cables not being correct. If they are USB 2.0, very little magnetic noise can cause trouble. (And you cannot tell if a cable runs USB 2.0 or 3.0 by looking at it... because the universal serial bus is not universal... Insert grump rant here) I then spend an hour finding and trying different USB A to USB B-mini cables. Give up, notes down to buy (and MARK) some USB 3.0 versions for the future. I then grab a Arduino Uni instead, as they use USB B, which is much more resistant to noise... And then spend half an hour trying to find a the cable, as I do not have a lot of them, since... nearly nothing uses them. Finally find it, and yes, the program can now be flashed. So I packed all the cables I tested back in their places, after marking them so I will(hoefully) not have to do this again. Had to take several breaks feeling depressed and grumpy, and all in all, this adventure took 4-5 hours. And now I can START on this... And this is how work sometimes is. And that is ok. It is still... VERY frustrating ...