直接的ではありませんが、ほとんどの言語は文字列を解析することもできます。Java はメソッドで「10101000」を int に変換できます。
これが効率的かどうかではありません...そこにあると言っているだけです。静的初期化ブロックで実行された場合、コンパイラによってはコンパイル時に実行されることもあります。
バイナリが得意な場合は、短い数値であっても、0x3c を 4 つの 1 の後に 2 つのゼロが続くように見るのは非常に簡単ですが、バイナリの短い数値でも 0b111100 になるため、確認する前に目を痛める可能性があります。の数の。
0xff9f は、正確に 4+4+1 の 1、2 つのゼロ、および 5 つの 1 です (一見すると、ビットマスクは明らかです)。0b1111111110011111 を数えようとすると、もっといらいらします。
問題は、言語設計者が常に 16 進数/8 進数/2 進数などに多額の投資をしており、このように考えていることだと思います。あなたが経験の浅い人なら、これらの変換がどのように明白ではないかを完全に理解できます.
ねえ、基数変換について考えているときに思いついたことを思い出します。シークエンス -- 「次の数字」は誰も解けないと思っていたが、実際に解けたので解ける。試してみる:
10
11
12
13
14
15
16
21
23
31
111
?
編集:ちなみに、このシーケンスは、ほとんどの言語(確かにJava)で単一の組み込み関数に連続番号を入力することで作成できます。