トピックへのリンク:https://www.luogu.org/problem/P2084
P2084の六角変換
トピックの背景
ノー
タイトル説明
(10101)2は、その後、式のその10進表現であるような今日、暁明は、バイナリ変換することを学びました。
1 * 2 ^ 4 + 0 * 2 ^ 3 + 1 * 2 ^ 2 + 0 * 2 ^ 1 + 1 * 2 ^ 0、
その後、M進数Nは式の10進表現に変換され、プログラミング。
注:係数が0である場合、アイテムタイプを省略します。
入力形式
スペースで区切られた2つの数字、MおよびN、。
出力フォーマット
総行、式の10進表現。
サンプル入力と出力
2 10101
1 * 2 ^ 4 + 1 * 2 ^ 2 + 1 * 2 ^ 0
説明/ヒント
データの100%に、1 <M <10、Nはビット数が1000を超えないことです。
ロードテストサイトこの問題は、N進に関する基本的な質問を変換することです。
バイナリ変換については、ここで私はそれについて言うことを詳しく説明していることを、私はコンピュータを学んだ人たちが理解しなければならないと信じていますが、ブログの目的は、学習過程を記録することがあるため、強固な基盤!
例と二進化十進数:
例えば:101011、実際には、ベースは、電源及び2、すなわち、である「1 * 2 ^ 5 + 0 * 2 ^ 4 + 1 * 2 ^ 3 + 0 * 2 ^ 2 + 1 * 2 ^ 1 + 1 * 2 ^ 0 "
式は:abcd.efg(2)* 2 = D 0 + 2 * C 1 + B 2 * 2 + 2 * A 3 + 2 * E -1 + F * 2 -2 + 2 * G -3(10)
言い当面は小数部分(実際には、電力の降順)
おそらく言うまでもないバイナリ小数ターンの方法として(それを言うためにどのあなたは確かになります)
1つの 一方(M =!0 ) 2 { 3 [++ K] = M%2 。 4 M / = 2 。 5 }
*全体:
M進法のN進転送:
・1全体の最初のM進(シンプルだが複雑な)バイナリ変換にすることができ
1.2。ダイレクトコンバージョン(面倒でエラーが発生しやすい簡単な)
この質問はあまりにも長い間、あなたがバイナリ変換の間の関係を理解し、それは実際には非常に簡単です。
1の#include <CStringの> 2の#include <iostreamの> 3 4 使用して 名前空間STDを、 5 6 int型N、LEN。 7 8 ストリング。 9 10 のint main()の 11 { 12 CIN >> N >> 。 13 LEN = a.size() - 1 ; 14 のint、K = 0 。 15 のためには、(int型、I = 0 ; iがLEN = <; Iは++ ) 16 場合([I] == ' 0' ) 17 K ++ 。 18 K = LEN - kは、 19 int型 TMP = LEN。 20 のために(int型 I = 0 ; iがLEN = <I ++は) 21 { 22 場合([I] == ' 0 ' ) 23 { 24 tmp-- 。 25 続け; 26 } 27 他の 28 { 29 COUT << [I] << " * "<< N << " ^ " << TMP; 30 もし(K) 31 { 32 COUT << " + " 。 33 k-- 。 34 } 35 tmp-- 。 36 } 37 } 38 リターン 0 。 39 }
強固な基盤を築く、良い仕事にそれぞれの質問を行います!!!
著者:Gmaxの
この記事では、著者に属し、公園の合計をブログ、複製、リンク、オリジナルを転載しないでください、ありがとうございます♪(・ω・)テクノを使用してください
2019年8月10日
abcd.efg(2)= D * 2 0 + C * 2 1 + B * 2 2 + A * 2 3 + E * 2 -1 + F * 2 -2 + G * 2 -3(10)