diff --git a/code/include/binform17.hh b/code/include/binform17.hh index d52ff9f5c779014322002c6b7eb1cba409469a76..c0da1a85edb96ebe4a8a48e19227a6346989010f 100644 --- a/code/include/binform17.hh +++ b/code/include/binform17.hh @@ -1,20 +1,20 @@ -#include <iostream> #include <bitset> #include <cstddef> #include <iomanip> +#include <iostream> -namespace cxx2022 { +namespace cxx_course { using byte = unsigned char; - + template <class T> auto bits(T var) { - std::remove_cv_t<std::remove_reference_t<T>> loc{var}; - unsigned long bytes{0UL}; - byte* in = reinterpret_cast<byte *>(&loc); - byte* out = reinterpret_cast<byte *>(&bytes); + std::remove_cv_t<std::remove_reference_t<T>> loc { var }; + unsigned long bytes { 0UL }; + byte* in = reinterpret_cast<byte*>(&loc); + byte* out = reinterpret_cast<byte*>(&bytes); std::copy(in, in + sizeof(loc), out); - return std::bitset<8*sizeof(decltype(loc))>(bytes) ; + return std::bitset<8 * sizeof(decltype(loc))>(bytes); } void showbits(double var) @@ -22,9 +22,9 @@ void showbits(double var) std::cout << "bits for double value " << var << "\n"; auto b = bits(var).to_string(); std::cout << "raw = " << b << "\n"; - std::cout << "sign exponent mantissa\n" + std::cout << "sign exponent mantissa\n" << std::setw(6) << std::left << b[0] - << std::setw(16) << std::left << b.substr(1UL, 11) + << std::setw(16) << std::left << b.substr(1UL, 11) << " " << b.substr(12) << "\n\n"; } @@ -33,9 +33,9 @@ void showbits(float var) std::cout << "bits for float value " << var << "\n"; auto b = bits(var).to_string(); std::cout << "raw = " << b << "\n"; - std::cout << "sign exponent mantissa\n" + std::cout << "sign exponent mantissa\n" << std::setw(6) << std::left << b[0] - << std::setw(16) << std::left << b.substr(1UL, 8) + << std::setw(16) << std::left << b.substr(1UL, 8) << " " << b.substr(9) << "\n\n"; } @@ -46,4 +46,3 @@ void showbits(T var) } } -