| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 |
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using System;
- using System.Linq;
- public class ConvertBinaryNumber
- {
- public static string[] numbers = new string[]
- {
- "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f" , "g" , "h" , "i" , "j",
- "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z" , "A" , "B" , "C" , "D",
- "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T" , "U" , "V" , "W" , "X",
- "Y", "Z", "!", "#", "$", "%", "&", "'", "ザ", "ジ", "=", "~", "`", "@", "ズ", "ゼ" , "ゾ" , "ダ" , "ュ" , ":",
- "ド", "ヅ", "デ", "ヂ", "/", "?", "ャ", "ゲ", "ゴ", "あ", "い", "う", "え", "お", "か", "き" , "く" , "け" , "こ" , "さ",
- "し", "す", "せ", "そ", "た", "ち", "つ", "て", "と", "な", "に", "ぬ", "ね", "の", "は", "ひ" , "ふ" , "へ" , "ほ" , "ま",
- "み", "む", "め", "も", "や", "ゆ", "よ", "ら", "り", "る", "れ", "ろ", "わ", "を", "ん", "っ" , "ゃ" , "ゅ" , "ょ" , "ぁ",
- "ぃ", "ぅ", "ぇ", "ぉ", "ア", "イ", "ウ", "エ", "オ", "カ", "キ", "ク", "ケ", "コ", "サ", "シ" , "ス" , "セ" , "ソ" , "タ",
- "チ", "ツ", "テ", "ト", "ナ", "ニ", "ヌ", "ネ", "ノ", "ハ", "ヒ", "フ", "ヘ", "ホ", "マ", "ミ" , "ム" , "メ" , "モ" , "ヤ",
- "ユ", "ヨ", "ラ", "リ", "ル", "レ", "ロ", "ワ", "ヲ", "ン", "ッ", "ャ", "ュ", "ョ", "ァ", "ィ" , "ゥ" , "ェ" , "ォ" , "が",
- "ぎ", "ぐ", "げ", "ご", "ざ", "じ", "ず", "ぜ", "ぞ", "だ", "ぢ", "づ", "で", "ど", "ば", "び" , "ぶ" , "べ" , "ぼ" , "ぱ",
- "α", "β", "γ", "ァ", "δ", "ε", "ζ", "η", "θ", "ι", "κ", "λ", "μ", "ν", "ξ", "ο" , "π" , "ρ" , "σ" , "τ",
- "υ", "φ", "ψ", "ω", "Ω", "Δ", "Γ", "Θ", "Λ", "Ξ", "Π", "Σ", "Φ", "ぴ", "ぷ", "ぺ" , "ぽ" , "ガ" , "ギ" , "グ",
- };
- //Convert n-decimal number to n^k-decimal number
- public static string NStringToNKString(string x, int n, int k)
- {
- //k letters are cut out one by one
- string[] SplitText = SplitClass.Split(x, k);
- string result = null;
- for (int i = 0; i < SplitText.Count(); i++)
- {
- //Convert to decimal
- int x_10 = NStringToInt(SplitText[i], n);
- //Convert to n^k decimal
- string x_nk = IntToNString(x_10, (int)Mathf.Pow(n, k));
- result += x_nk;
- }
- return result;
- }
- //Convert n^k decimal numbers to n decimal numbers
- public static string NKStringToNString(string x, int n, int k)
- {
- //Cutting one character at a time
- string[] SplitText = SplitClass.Split(x, 1);
- string result = null;
- for (int i = 0; i < SplitText.Length; i++)
- {
- //Convert to decimal
- int x_10 = NStringToInt(SplitText[i], n);
- if (x_10 == 114514)
- {
- return "114514";
- }
- //Converted to n decimal
- string x_n = IntToNString(x_10, n);
- //Cutting one character at a time
- string[] Split_x_n = SplitClass.Split(x_n, 1);
- string[] x_n_i = new string[k];
- //Put initial value 0
- for (int j = 0; j < k; j++)
- {
- x_n_i[j] = "0";
- }
- for (int j = 0; j < Split_x_n.Length; j++)
- {
- x_n_i[j + k - Split_x_n.Length] = Split_x_n[j];
- }
- for (int j = 0; j < k; j++)
- {
- result += x_n_i[j];
- }
- }
- return result;
- }
- //Convert decimal int to n-decimal string
- public static string IntToNString(int x, int n)
- {
- if (x < 0)
- {
- return null;
- }
- if (x == 0)
- {
- return "0";
- }
- var nstring = "";
- int r = 1; // over
- int q = x; // quotient
- // Loop until quotient reaches 0
- while (q > 0)
- {
- r = q % n;
- nstring += numbers[r];
- q = q / n;
- }
- return string.Join("", nstring.Reverse());
- }
- //Convert n-decimal string to decimal int
- public static int NStringToInt(string x, int n)
- {
- //Cutting one character at a time
- string[] SplitText = SplitClass.Split(x, 1);
- int _x = 0;
- for (int i = 0; i < SplitText.Reverse().Count(); i++)
- {
- string SplitedText = SplitText.Reverse().ToArray()[i];
- int delta = Array.IndexOf(numbers, SplitedText) * (int)Mathf.Pow(n, i);
- if (delta == -1)
- {
- return 114514;
- }
- _x += delta;
- }
- return _x;
- }
- }
|