トップページ⇒tech
123コメント26KB

10進数を16進数に変える方法について

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
誰か変換の方法教えて下さい。
00022NGNG
1本デーもにんじん
00033NGNG
日本デーも三国志
00043NGNG
3つでーも四国
00055NGNG
4人でーも後藤マキ
00066NGNG
5歳で〜もろくでなしブルース
00077NGNG
7またでもヤマタノオロチ
0008八NGNG
八兵衛でも食いだおれ
00099NGNG
クソスレ
001010NGNG
倒産
0011BNGNG
佐藤B作
0012CNGNG
CCサクラ
0013DNGNG
decimal

ほら、これが10進数を16進数に変える方法だね。
0014ENGNG
calc.exe
0015FNGNG
FAQ読め
0016sageNGNG
ある人によると"人間の両手の指の数が10本だから10進数"らしいから、指の数が16本の人間を増やせば16進数に変換できるよ
0017デフォルトの名無しさんNGNG
Windowsの電卓で変換すれば?
0018&H12NGNG
人間の指は10本あるから1023まで余裕で数えられるよ
0019デフォルトの名無しさん NGNG
HEX(Num)
sprintf(str,"%X",num);

go to google;
0020デフォルトの名無しさんNGNG
人間の指は20本です
>>18は妖怪人間ベム
0021デフォルトの名無しさんNGNG
>>1

たとえば、「A6B」。

B = 11
6 = 6 * 16 = 96
A = 10 * 16 * 16 = 2560

11 + 96 + 2560 = 2667。電卓で確認してみて。

つまり・・・。 (換算して出た数(A=10,B=11…) * (16の(ビット目)乗)) + … をビット数分繰り返す。

……電卓使ったほうがはるかに簡単。

マジレスすまん。
0022デフォルトの名無しさんNGNG
>>21

おーい、10進数を16進数に変える方法を聞いているんだぞ。それだと逆だろう。
0023デフォルトの名無しさんNGNG
#include <stdio.h>
main()
{
char str[] = "10進数";
puts(str);
str[1] = '6';
puts(str);
}
0024デフォルトの名無しさんNGNG
>>23
16進数は全角ですよ。
0025デフォルトの名無しさんNGNG
>>24
ほんとだ。よく見てんな。
しかしなにゆえに全角になってんだ?
0026デフォルトの名無しさんNGNG
10進も16進もおんなじだ。表記法の違いであって数としてはかわらん。
0027デフォルトの名無しさんNGNG
>>26

>>1はプログラム内でのこととは一言も言っていませんよ?
0028デフォルトの名無しさんNGNG
プログラム外でのこととも一言も言っていませんよ?
0029デフォルトの名無しさんNGNG
マターリヽ(´ー`)ノシヨウヨ
0030デフォルトの名無しさんNGNG
マジレスすると、

# ruby -e 'puts "%x" % 10'
a
0031名無しNGNG
変換したい10進数を商が0になるまで16で割りつづける。
商を求める際には余りを記録しておく。
商が0になったら、余りを後ろから順に並べる。それが答え。

例えば10進数300を16進数に変えるなら

300 / 16 = 18 余り 12(C)
18 / 16 = 1 余り 2
1 / 16 = 0 余り 1

で、下から順に余りを並べたのが答え。
つまり16進数12Cが10進数300になる。
0032デフォルトの名無しさんNGNG
a = 300;
while (a) {
 b = a % 16;
 a /= 16;
 *buf-- = b + b>9?('a'-10):'0';
}
0033デフォルトの名無しさんNGNG
>>32
このコードって動いてる?
0034デフォルトの名無しさんNGNG
sprintf( buf, "0x%08x", number );
0035cout << hex << atoi(decimal) << endl;NGNG
>>32
不吉なコード

かならずよくないことがおこる
0036デフォルトの名無しさんNGNG
>>32
× *buf-- = b + b>9?('a'-10):'0';
○ *buf-- = b + (b>9?('a'-10):'0');

bufは、適当なchar配列の後方にポイントしておく(NULのひとつ手前に)
0037デフォルトの名無しさんNGNG
十進数の頭に0xをつければ16真数になるYO!
中学校の数学なら<sub>(16)</sub>って感じだNE!
0038デフォルトの名無しさんNGNG
マッチをデジタル時計のように並べて10を作りました。
マッチを1本だけ動かして16にしなさい。
■ このスレッドは過去ログ倉庫に格納されています