moose-mousse - Electronic Moose
Electronic Moose

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.

What Is Half-adder And Full-adder Combinational Circuits?

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.

What Is Half-adder And Full-adder Combinational Circuits?

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:

Half Adder in Digital Logic - GeeksforGeeks
GeeksforGeeks
A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, qu

I hope that made sense, and was useful :3

  • hydralisk98
    hydralisk98 reblogged this · 7 months ago
  • hydralisk98
    hydralisk98 liked this · 7 months ago
  • admitit
    admitit liked this · 1 year ago
  • sweetpoetrygladiator
    sweetpoetrygladiator liked this · 1 year ago
  • schlimedup
    schlimedup reblogged this · 1 year ago
  • schlimedup
    schlimedup liked this · 1 year ago
  • theguyrunningsouth
    theguyrunningsouth reblogged this · 1 year ago
  • theguyrunningsouth
    theguyrunningsouth liked this · 1 year ago
  • taperwolf
    taperwolf reblogged this · 1 year ago
  • taperwolf
    taperwolf liked this · 1 year ago
  • nounofrassilon
    nounofrassilon liked this · 1 year ago
  • moose-mousse
    moose-mousse liked this · 1 year ago
  • noctumsolis
    noctumsolis reblogged this · 1 year ago
  • ofairandbeauteousone
    ofairandbeauteousone liked this · 1 year ago
  • commodorez
    commodorez reblogged this · 1 year ago
  • it-becomes-so
    it-becomes-so liked this · 1 year ago
  • somniphobicfox
    somniphobicfox liked this · 1 year ago
  • doctorfurbenstein
    doctorfurbenstein liked this · 1 year ago
  • moose-mousse
    moose-mousse reblogged this · 1 year ago
  • illustrious-carbonic-eels
    illustrious-carbonic-eels liked this · 1 year ago
  • the-windup-official
    the-windup-official liked this · 1 year ago
  • blake447
    blake447 reblogged this · 1 year ago
  • memorias-de-una-computadora
    memorias-de-una-computadora reblogged this · 1 year ago
  • goldenspirits
    goldenspirits reblogged this · 1 year ago
  • goldenspirits
    goldenspirits liked this · 1 year ago
  • mbvisualarts
    mbvisualarts reblogged this · 1 year ago
  • mbvisualarts
    mbvisualarts liked this · 1 year ago
  • datamodel-of-disaster
    datamodel-of-disaster liked this · 1 year ago
  • unishine
    unishine liked this · 1 year ago
  • vez0k1
    vez0k1 reblogged this · 1 year ago
  • studywithvictory
    studywithvictory liked this · 1 year ago
  • arbiewebbjr
    arbiewebbjr liked this · 1 year ago
  • tired-goblin
    tired-goblin liked this · 1 year ago
  • cyberfolktale
    cyberfolktale liked this · 1 year ago
  • quietmarie
    quietmarie liked this · 1 year ago

More Posts from Moose-mousse

1 year ago
So I Made A GUI For My Parents Campsite. They Wanted A GUI On Tablets, Or Maybe A PC Where They Could

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


Tags :
1 year ago

One of us! One of us!

Art By Me, Inspired By Tsuukochuo & Dachell_Art
Art By Me, Inspired By Tsuukochuo & Dachell_Art

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


Tags :
1 year ago

Just... Yeah...

moose-mousse - Electronic Moose

Tags :
1 year ago

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?


Tags :
1 year ago

"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 ...


Tags :