to_binaryという関数内でsubstrが使用されています。
実行すると5ビットでバイナリーで1ずつ加算されて
出力されます。
subsrを調べると、以下のようになっています。
basic_string substr(size_type pos = 0, size_type n = npos) const;
概要
部分文字列を取得する。
pos番目からn要素の文字列を返す。
この説明から、1ずつ加算されてバイナリーで出力されることが
よくわからないです。
教えていただけないでしょうか?
std::string to_binary(unsigned int value, int const digits) { return std::bitset<32>(value).to_string().substr(32 - digits, digits); } int main() { std::cout << "Number\tBinary\tGray\tDecoded\n"; std::cout << "------\t------\t----\t-------\n"; for (unsigned int n = 0; n < 32; ++n) { auto encg = gray_encode(n); auto decg = gray_decode(encg); std::cout << n << "\t" << to_binary(n, 5) << "\t" << to_binary(encg, 5) << "\t" << decg << "\n"; }
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/09 08:07
2020/08/09 08:28
2020/08/09 11:20