10進数からN進数に変換するプログラム
約 3 分
目次
概要
ある任意の10進数からN進数に変換するプログラム(JavaScript)を紹介します。
N進数を求めるプログラム
ソース
ある任意の10進数xをn進数に変換した結果を返す関数convertBasedRepr。
function convertBasedRepr(x, n) {
var result = [];
do {
var t = x % n;
result.push(t);
var m = Math.floor(x / n);
if (m < n) {
if (m !== 0) {
result.push(m);
}
break;
}
x = (x - t) / n;
} while (1);
return result;
}
実行すると...
main(20);
function main(max) {
for (var i = 0; i < max; i++) {
console.log(JSON.stringify(convertBasedRepr(i, 2).reverse()));
}
}
// 配列の0要素が1桁目と成るので反転して出力しています。
これを実行すると以下のように実行されます。
[0][1][1, 0][1, 1][1, 0, 0][1, 0, 1][1, 1, 0][1, 1, 1][1, 0, 0, 0][1, 0, 0, 1][
1, 0, 1, 0
][1, 0, 1, 1][1, 1, 0, 0][1, 1, 0, 1][1, 1, 1, 0][1, 1, 1, 1][1, 0, 0, 0, 0][
1, 0, 0, 0, 1
][1, 0, 0, 1, 0][1, 0, 0, 1, 1];
これを応用し
main(50);
function main(max) {
var based_strings = '0123456789abcdefghijklmnoqrstuvwxyz'.split(''); // 0-zの文字列の配列
for (var i = 0; i < max; i++) {
var based_n = convertBasedRepr(i, 16);
var dst = '';
for (var j = 0; j < based_n.length; j++) {
dst = based_strings[
based_n[j]
] + dst;
}
console.log(dst);
}
}
0
1
2
3
4
5
6
7
8
9
a
b
c
d
e
f
10
11
12
13
14
15
16
17
18
19
1a
1b
1c
1d
1e
1f
20
21
22
23
24
25
26
27
28
29
2a
2b
2c
2d
2e
2f
30
31
と出力されます。
100進数みたいなものも作れると思います。
参考
おすすめの記事
最新の記事
よく読まれている記事
タグから探す
- javascript130
- typescript67
- node.js54
- linux54
- 画像処理48
- amazon-aws48
- アルゴリズム37
- canvas35
- html529
- 画像処理100本ノック27
- php24
- centos24
- python22
- 競技プログラミング21
- mac21
- mysql20
- opencv17
- 雑談16
- 機械学習16
- docker16
- wordpress15
- atcoder14
- apache12
- データベース12
- amazon-s312
- red-hat12
- prisma12
- ubuntu11
- github10
- git10
- react10
- mariadb10
- vue.js9
- next.js9
- aws-cdk9
- css38
- 可視化8
- 小ネタ8
- nestjs8
- amazon-lightsail7
- ブログ6
- cms6
- oracle6
- perl6
- gitlab6
- iam5
- amazon-ec25
- 資格試験5
- aws-amplify5
- curl4