ブログ更新しばらくご無沙汰しちゃいましたねー。
ということで今回は、
あまり使用する機会はないかもしれないですが、
scalaによる36進数(0-9A-Z)に変換するサンプルを紹介しようと思います。
とはいっても36進数までなら何進数でもOKな感じです。
数値→36進数
def numToBaseNumber(n: Long, base: Int): String = { val targetChar = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" var str = "" var temp = n while (temp > 0) { val r = temp % base str = targetChar.substring(r.toInt, r.toInt + 1) + str temp = temp / base } str }
引数nは変換対象の数字です。
引数baseは何進数?ってことです。36進数なら36を渡します。
36進数→数値
def baseNumberToNum(s: String, base: Int): Long = { val targetChar = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" var ret = 0L for (c <- s.toCharArray) { ret = ret * base + targetChar.indexOf(c) } ret }
引数sは変換対象です。
引数baseは同じです。
ただこれだと、渡した変換後の値の進数と
引数で渡す進数の違いのチェックができてないので、
そのあたりはお好みでってことで。
ちょっと短いですが、
本日はこれまで。
それでは!
20代前半までは東京で音楽をやりながら両手の指以上の業種でアルバイト生活をしていましたが、某大手プロバイダのテレアポのバイトでPCの知識の無さに愕然とし、コンピュータをもっと知りたい!と思ったことをきっかけに25歳の時にITの世界に未経験で飛び込みました。
紆余曲折を経て、現在は個人事業主としてお仕事させていただいており、10年ほどになります。
web制作から企業システム構築、ツール開発など、フロントエンドもバックエンドもサーバーもDBAも依頼があれば何でもやってきた雑食系エンジニアです。
今風にいうとフルスタックエンジニアということになるのでしょうか??
→ 詳細プロフィールというか、生い立ちはこちら
→スキルシートをご覧になる場合はこちら
→お仕事のご依頼やお見積りなどお問い合わせはこちらから!
コメント