- ベストアンサー
10進数を60進数へ変換方法とは?
- 10進数を60進数へ変換する方法について詳しく説明します。
- 60進数への変換方法を検討していますが、よくわかりません。
- 60進数について疑問があり、10進数の数字を60進数に変換する方法を知りたいです。
- みんなの回答 (9)
- 専門家の回答
質問者が選んだベストアンサー
60進数の各位の1桁は0~59の数を表す桁の文字が必要です。 60進数の1桁を10進数の2桁の00~59の2文字を使って表すことにすると >(例)10進数→60進数 >5.233333 → 5.14 これは 5.(10進)→05(60進1位の1桁) 0.23333333…(10進)*60=14.000… → 14(60進小数以下第1位の桁) 正確には 5.23333333…(10進) → 05.14(60進) と変換できます。 同様に >8.783334 → 8.47 これは 8.(10進)→08(60進1位の1桁) 0.78333333…(10進)*60=47.000… → 47(60進小数以下第1位の桁) 正確には 8.78333333…(10進) → 08.47(60進数) と変換できます。 >質問は「100」「512」を60進数にするとどうなるのでしょうか。 100=60+40=01*60^1+40*60^0(10進) =0140(60進) 512=8*60+32=08*60^1+32*60^0(10進) =0832(60進) となります。
その他の回答 (8)
> 回答の冒頭で「16進数は「F」まで使用するが・・・」に対して「自由に決めていいんですが」と言っていますがHEXでは「0」~「F」となってます。余計なお世話ですけど。 これも含めて、変な固定観念が理解を妨げているって事は無いですか? Wikipediaの記事から引用ですが、 十六進法 - Wikipedia http://ja.wikipedia.org/wiki/%E5%8D%81%E5%85%AD%E9%80%B2%E6%B3%95 | 一般には、16 個の数字 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F を用いる。A から F は、それぞれ十進での 10 から 15 を表す。 と、あくまでも「一般的には」という前提です。(まぁ、自分も普通はそうしますが。) 一般的でない表記方法だって、きちんと定義すれば問題ないんです。 上の記事で、「初期の表記法」として、A~Fの文字を用いる以外の表記方法がいくつか紹介されています。 例えば、「Bendix G-15」という大昔のコンピュータでは、 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, U, V, W, X, Y, Z という表記法が使われていたそうです。 -- 表記の話だと、 Unicodeの丸数字も(50)まででちょっと足りないです。 バビロニア数字が60進法に対応してるそうですが、さすがに0~9の数字まで置き変わっちゃうと、現代では実用性が厳しいですし。 時(度)分秒が気に入らないのなら、丸付き数字のつもりで (4)(16) [4][16] とかって書き方なんかが無難だとは思いますが。 -- という事で、 > 正確に言うと「100」は「100.0000」、「512」は「512.0000」でした。 10進数の「100.0000」を、1桁を()で区切る60進数で表記するなら、「(01)(40).(00)(00)(00)(00)」 10進数の「512.0000」を、1桁を()で区切る60進数で表記するなら、「(08)(32).(00)(00)(00)(00)」 だとか。 10進数の「5.233333…」を、1桁を()で区切る60進数で表記するなら、「(05).(14)」 10進数の「5.233333」を、1桁を()で区切る60進数で表記するなら、「(05).(13)(59)(59)(55)(40)…」(?) だとか。
お礼
回答、ありがとうございます。
- mmitsukuni
- ベストアンサー率56% (9/16)
N進法というのは,1つの桁が0~(N-1)からなってます. 2進数は,1つの桁は0か1です. 10進数は,1つの桁は0~9の数字からなり, 16進数は,1つの桁が0~15の数字からなりますが, 9以上の数をあらわす「1桁」の記号としてA~Fを使うのです。 それで、一般にN進数で書いた「abcd」という数字は a×N^3+b×N^2+c×N^1+d×N^0 という値をあらわします。 ここで、N^k というのはNのk乗を表します。N^0=1 です。 60進数を表すには0~9とその後の10~63を表すために全部で60個の記号が必要です. これはアルファベットを一文字ずつ割り当てても足りませんので, N進数の一桁をあからさまに括弧[]で囲んで表すことにすれば, 10進数0は1桁で[0]=16進数で[0]=60進数で[0] 10進数15は2桁で[1][5]=16進数では[15]の1桁でこれを[F]とかく=60進数で[15]:1桁. 10進数[1][6]=16進数[1][0]=60進数の[16]:1桁 10進数[5][9]=16進数[3][B]=60進数の[59]:1桁 10進数[6][0]=16進数[3][C]=60進数の[1][0]:位が上がって2桁になる そこで,質問の 10進数[1][0][0]=16進数[6][4]=60進数[1][40]: 10進数[5][1][2]=16進数[2][0][0]=60進数[8][32]: 10進数512の場合の意味する値は,分かり易く書けば次のとおり. 10進数[5][1][2]=[5]×100+[1]×10+[2]×1 16進数[6][4]=[2]×256+[0]×16+[0]×1 60進数[8][32]=[8]×60+[32]×1 なお,時間の単位は[時][分][秒]を各桁と思えば60進法です. (でも,その上の[日]は,1日=24時間だから24進になってます.) だから512秒=8分32秒となります. 小数は各桁がN^(-k)となるだけですが,この場合の変換はやや面倒です.
お礼
回答、ありがとうございます。 丁寧な説明、大変参考になります。
- pringlez
- ベストアンサー率36% (598/1630)
あなたは何のために質問をしているのですか?何か特定の用途に使う必要があるがわからなくて困っているのか、特に目的はなくなんとなく60進数について知りたくなったから質問をしているのか。その根本的なところを書いたほうがいいですよ。 2進数、8進数、10進数、16進数は、通常は1つの桁を一つの文字で表します。しかし60進数は通常、1つの桁を1つの文字で表しません。60種類の文字を用意する必要があるわけですがわかりにくいのでわざわざしないのでしょう。 あなたはそこが理解できていないだけでしょう。そこが分かっていないということは、なんとなく漠然と質問をしているのではないかと思いますが。 60進数を1つの桁で無理に表そうとした場合、60種の文字が必要ですので、数字10個とアルファベット大文字小文字を区別して使うことにします。 0123456789 ABCDEFGHIJ KLMNOPQRST UVWXYZabcd efghijklmn opqrstuvwx 40番目はe 32番目はW なので、100は1e、512は8Wということも出来ます。 が、 60進数の代表例は時間です。 あなたの質問は100秒は何分ですか、512秒は何分ですかという質問とほぼ同じです。なので 100秒は1分40秒です。 512秒は8分32秒です。 の方が適切でしょうね。 とにかく、100を60進数にすると 1桁目は1、2桁目は40番目の数字・文字になる、と思っておけば難しくはないのではないかと思います。
お礼
回答、ありがとうございます。 某業界の証拠金の算出に必要なので質問させて頂きました。 時分秒で出されてもちょっと困るのです。
#3です。 すみません、ちょっと書き方の不統一がありました。 誤> 10進数の256は60進数で「4:16」です。 各桁を2桁で書くように説明を進めていましたので、以下のように訂正してお詫びします。 正> 10進数の256は60進数で「04:16」です。 ついでですが、60進数を10進数に直す方法も。 10進数で「14」というのは、各桁に注目すると、10^1×1+10^0×4ということです(^nはn乗ということ、エクセルでも使える記法)。 60進数で「01:40」というのは、10の代りに60を使って、60^1×1+60^0×40と表せて、計算すると100です。同様に「04:16」なら、60^1×4+60^0×16=256となります。
お礼
回答、ありがとうございます。 又、細かい訂正の件、ありがとうございます。
> 16進数はよく使用するのでわかるのですが60進数がよくわかりません。 > 16進数は「F」まで使用するが60進数は数字のみなのでしょうか。 自由に決めていいんですが、アルファベットを使おうとしても、50文字とか60文字も無いし、大文字小文字を使うのもビミョーです。 ひらがなも50音とは言うものの、後半は文字がかぶって実質46とか48文字でビミョーに足りないし。 日常生活で使われてる60進法の、(時または度と)分秒を使っては。 > いろいろと言っていますが、質問は「100」「512」を60進数にするとどうなるのでしょうか。 例えば、 100秒は、1分40秒 512秒は、8分32秒 とか。 逆に、これを区切り無く「140」とかって書いちゃうと、 「1」「4」「0」=1×60^2 + 4×60^1 + 0×60^0 = 3840 「14」「0」=14×60^1 + 0×60^0 = 840 「1」「40」=1×60^1 + 40×60^0 = 100 どれなのか分かりません。 同じ理由で、 > (例)10進数→60進数 > 5.233333 → 5.14 > 8.783334 → 8.47 も色々検討しなきゃならないんで、コメント出来ないですが。
お礼
回答、ありがとうございます。 説明不足があったみたいです。 私も60進数で算出する事が初めてなものでスミマセンでした。 正確に言うと「100」は「100.0000」、「512」は「512.0000」でした。 回答の冒頭で「16進数は「F」まで使用するが・・・」に対して「自由に決めていいんですが」と言っていますがHEXでは「0」~「F」となってます。余計なお世話ですけど。
>「100」「512」を60進数にするとどうなるのでしょうか。 何進数であれ、同じなんですけれど、60進数では数字に使える文字が足りませんね。16進数は0~9, A~Fがよく使われています。10進数以下、例えば2進数だと、0, 1で足りる。60個の文字を割り当ててもいいんですが、ちょっと覚えきれません。 時分秒はよく、09:52:13(9時52分13秒)のように書かれます。60秒=1分ですし、60分=1時間です。これも一種の60進数なんですね(日になるときは「1日=24時間」なので、24進数に変わってしまう)。そこで以下では60進数を、「:」で区切った、各桁が00~59になるような数字として書くことにします。 手計算では以下のようにやります。「)__」のように書いてあるのは、割り算の筆算でよく使う「) ̄ ̄」を引っくり返したものです。 10進数の100を60進数に直してみます。 60)100 ←60進数を求めるには、60で割り算をする ―― 1 あまり40 ←このあまりが60進数1桁目 60)1 ←求めた商を再び使う ―― 0 あまり1 ←あまりの1が60進数2桁目 ↑商が0になれば、これより大きな桁はない こうして、10進数の100は60進数で「01:40」であることが分かります。 時間で100秒を考えてみると、1分40秒ですから、これで合っているはずです。 10進数の256も同じにやれます。 60)256 ―― 4 あまり16 60)4 ―― 0 あまり4 10進数の256は60進数で「4:16」です。 時間で256秒は4分16秒ですから、これで合っているはずです。
お礼
回答、ありがとうございます。 参考にさせて頂きます。
- mshr1962
- ベストアンサー率39% (7417/18945)
10進数の数字では、60進数を表すのは不可能です。 60進数で10以上になる数値を()に囲んで表した場合 100=1*60+40=1(40) 512=8*60+32=8(32) 5.2333=5+14/60=5.(14) 8.7833=8+47/60=8.(47) で()内の数字に対する文字に置き換える必要があります。 16進数同様に、A=10,B=11・・・Z=35・・・とするなら 512=8W 5.2333=5.E となりますけど。。。36以上の記号の割り当てがあるなら正解は出せますが 現状ではこれが限界です。
お礼
回答、ありがとうございます。 60進数の事、あまりわからなくてスミマセンでした。 わかりやすくて参考になりました。
- aokii
- ベストアンサー率23% (5210/22062)
60進数は60個の文字が必要です。「100」「512」を60進数にすると、「1x」「8x」。
お礼
回答、ありがとうございます。
補足
すみませんでした。60個の文字が必要なのですね。 「100」「512」と言いましたが、 実際は「100.0000」「512.0000」となっています。 「.0000」も必要と言う事なのでしょうか。
お礼
回答、ありがとうございます。 丁寧な説明でわかりやすかったです。 何分、60進数の算出は初めてな事なので助かります。