- 締切済み
n進数→m進数
n進数→m進数 (111010101.1111)2を16進数に変換 (1010101)2を5進数に変換 の解き方を教えて下さい。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- kmee
- ベストアンサー率55% (1857/3366)
> (111010101.1111)2を16進数に変換 これは基本。 小数点を基準に2進数を4桁ずつに区切る。4桁に足りない分は0を加える(整数部は左に、小数部は右に) 0001|1101|0101|.|1111 その4桁を16進数1桁に変換する。慣れると見ただけでわかるけど、それまでは abcd という4桁だったら a×8 + b×4 + c×2 +d を(10進数で)計算して、0~9はそのまま、10以上は 10=A,11=B,...15=Fとアルファベットにする 0001 = 1 1101 = 8+4+0+1=13=D 0101 = 5 1111 0 8+4+2+1=15=F →1D5.F >(1010101)2を5進数に変換 ・まじめな方法 m進の整数は mで割ると、右に一桁ずれて、余りがもとの「mの0乗」の位になる 例)10進数で 123 ÷ 10 =12 あまり 3 商をさらにmで割れば、あまりは「mの1乗」の位になる。以下同様 でてきた「あまり」を順番にならべれば、m進数での表記になる。 (1010101)2÷5 = (10001)2 あまり 0 (10001)2÷5 = (11)2 あまり 2 (11)2÷5 = 0 あまり 3 →(320)5 ・たぶん、この問題でもとめられる方法 16進にすると (55)h = (11)h x 5 =(16 + 1)x5 =(15+2)x5 =(3x5+2)x5 =3x5^2+2x5^1+0x5^0 =(320)5
- magicalpass
- ベストアンサー率58% (378/648)
2進数を16進数に直すのは簡単です。 4桁ごとに区切れば良いだけです。 0001->1 1101->d 0101->5 1111->f ↓ (1d5.f)16 m進数の第n桁の値がaの時の値を10進数で表すと、 a * m^(n-1) なので、 (1010101)2 = (55)16 = 5*16 + 5 = 85 = 75 + 10 = 3*5^2 + 2*5^1 + 0*5^0 = (320)5