in C++, how many digits and how many bits is the maximum allocated for unsigned long double?
None. There is no such thing as an unsigned long double, at least not in the standard. If you have such a beast you are using a non-compliant C++ compiler.
ok so what's the maximum then...
and how does having a 32-bit or 64-bit OS affect this?
What's the maximum of what? I think that you are confusing two different types: unsigned long (or unsigned long int) and long double.
The first is an integer type and the second is a floating point type. The sizes of these types depends on your particular C++ implementation. You should have a header file named "limits.h" that will indicate the largest sizes of ints, long ints, floats, doubles, and so on.
Separate names with a comma.