パブリック解決:秘密のメッセージのデコード
6117 ワード
サンタは超怪しいメールを得ました、そして、最初に、彼は彼がハッキングされたかもしれないと思いました.
しかし、それはちょうどサンタに彼の手紙を見るために市民を望まないクールなハッカー子供でした.
しかし、サンタはコンピュータについてあまり知りませんでした、そして、私たちに彼が受け取ったメッセージを解読するよう頼みました.
You can find the complete puzzle here.
解決策を考える
最初に見てみましょう.このように見えるメッセージがあるようです.
それは唯一のものとゼロを知っているので、何かあなたのコンピュータは水中を使用します.
これを知って、私たちは、各々の線が実は特定のシンボルであるのを見ることができます.これは文字、記号、数字、またはスペースであるかもしれません.
私たちはアッカーマンのように感じることができるので、この問題を解決する権利を取得しましょう.
バイナリメッセージのデコード
まず最初にしたいことは、すべての個々の行にアクセスできることを確認することです.
彼らがすべて異なる線であるということを知って、我々はそうように新しい線で分裂するために、
そして、それが現在配列であるのを見て、我々はオールアラウンド優れた
最後にアキュムレータのデフォルト値を設定し、空の文字列として設定します.
文字列を返し、デコードされたシンボルをこのバイナリコードの中に追加する必要があります.
バイナリコードをデコードするには、次のJavaScript関数を使用できます.
次のバイナリコードを取り、どうなるかを見ましょう.
さあ、これを使いましょう.
今ではJavaScriptのバイナリデコーダを持っています😎.
私たちをハッカーと見てください.
もう1つしかありません.
テストを実行します.
読んでいただきありがとうございます、接続しましょう!
私のブログを読んでくれてありがとう.私の電子メール会報を購読して、Facebook
しかし、それはちょうどサンタに彼の手紙を見るために市民を望まないクールなハッカー子供でした.
しかし、サンタはコンピュータについてあまり知りませんでした、そして、私たちに彼が受け取ったメッセージを解読するよう頼みました.
You can find the complete puzzle here.
解決策を考える
最初に見てみましょう.このように見えるメッセージがあるようです.
01001010
01101001
01101110
01100111
01101100
01100101
00100000
01100010
01100101
01101100
01101100
01110011
あなたがどんな基本的なコンピュータサイエンス・クラスを通っていたならば、これはbinary codeです.それは唯一のものとゼロを知っているので、何かあなたのコンピュータは水中を使用します.
これを知って、私たちは、各々の線が実は特定のシンボルであるのを見ることができます.これは文字、記号、数字、またはスペースであるかもしれません.
私たちはアッカーマンのように感じることができるので、この問題を解決する権利を取得しましょう.
バイナリメッセージのデコード
まず最初にしたいことは、すべての個々の行にアクセスできることを確認することです.
彼らがすべて異なる線であるということを知って、我々はそうように新しい線で分裂するために、
split
methodを使うことができます.input.split('\n')
これはバイナリコードの配列を与えます.そして、それが現在配列であるのを見て、我々はオールアラウンド優れた
reduce
methodを使うことができます.return input.split('\n').reduce((string, binary) => {
// todo
}, '');
減少は2つの引数をとります:アキュムレータ(string
)と現在のループ要素(binary
).最後にアキュムレータのデフォルト値を設定し、空の文字列として設定します.
文字列を返し、デコードされたシンボルをこのバイナリコードの中に追加する必要があります.
バイナリコードをデコードするには、次のJavaScript関数を使用できます.
String.fromCharCode(parseInt(binary, 2))
つのことが起こっているparseInt
:この作品はバイナリコードを文字コードに変換します.String.fromCharCode
文字コードを文字列に変換します.const binary = '01001010'
const charCode = parseInt(binary, 2)
// 74
const symbol = String.fromCharCode(charCode)
// J
このバイナリ範囲がJ
という意味です.さあ、これを使いましょう.
return input.split('\n').reduce((string, binary) => {
return (string += String.fromCharCode(parseInt(binary, 2)));
}, '');
そして、それ!今ではJavaScriptのバイナリデコーダを持っています😎.
私たちをハッカーと見てください.
もう1つしかありません.
テストを実行します.
読んでいただきありがとうございます、接続しましょう!
私のブログを読んでくれてありがとう.私の電子メール会報を購読して、Facebook
Reference
この問題について(パブリック解決:秘密のメッセージのデコード), 我々は、より多くの情報をここで見つけました https://dev.to/dailydevtips1/public-solving-decoding-a-secret-message-27igテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol