A Boolean is a true/false value. It can only be those two values and there be represented by a single bit (1 or 0).
In most languages a Boolean variable occupies the space of a full byte (8 bit) even though only a single of those bits is needed for representing the Boolean.
That's mostly because computers can't load a bit. They can only load bytes. Your memory is a single space where each byte has a numeric address. Starting from 0 and going to whatever amount of memory you have available. This is not really true because on most operating systems each process gets a virtual memory space but its true for many microcontrollers. You can load and address each f these bytes but it will always be a byte. That's why booleans are stored as bytes because youd have to pack them with other data on the same address other wise and that's getting complicated.
Talking about getting complicated, in C++ a std::vector is specialized as a bit field. Each of the values in that vector only occupy a single bit and you can get a vector of size 8 in a single byte. This becomes problematic when you want to store references or pointers to one of the elements or when you're working with them in a loop because the elements are not of type bool but some bool-reference type.
I had an intern who was writing his report and was doing calculations that were obviously wrong. I asked him how he got there and what his sources were for the formula.
He told me to hang on, he's going to re-check the section. A couple of hours later he gets back to me and says, the formula is in fact right. Again I ask for sources and he shows his chat with ChatGPT. It was just his very broken maths formula with the followup question: Is this right? Eager to please ChatGPT was confirming that ...
Wonder where he's at now ...