10進数を16進数に変える方法について
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG00022
NGNG00033
NGNG00043
NGNG00055
NGNG00066
NGNG00077
NGNG0008八
NGNG00099
NGNG001010
NGNG0011B
NGNG0012C
NGNG0013D
NGNGほら、これが10進数を16進数に変える方法だね。
0014E
NGNG0015F
NGNG0016sage
NGNG0017デフォルトの名無しさん
NGNG0018&H12
NGNG0019デフォルトの名無しさん
NGNGsprintf(str,"%X",num);
go to google;
0020デフォルトの名無しさん
NGNG>>18は妖怪人間ベム
0021デフォルトの名無しさん
NGNGたとえば、「A6B」。
B = 11
6 = 6 * 16 = 96
A = 10 * 16 * 16 = 2560
11 + 96 + 2560 = 2667。電卓で確認してみて。
つまり・・・。 (換算して出た数(A=10,B=11…) * (16の(ビット目)乗)) + … をビット数分繰り返す。
……電卓使ったほうがはるかに簡単。
マジレスすまん。
0022デフォルトの名無しさん
NGNGおーい、10進数を16進数に変える方法を聞いているんだぞ。それだと逆だろう。
0023デフォルトの名無しさん
NGNGmain()
{
char str[] = "10進数";
puts(str);
str[1] = '6';
puts(str);
}
0024デフォルトの名無しさん
NGNG16進数は全角ですよ。
0025デフォルトの名無しさん
NGNGほんとだ。よく見てんな。
しかしなにゆえに全角になってんだ?
0026デフォルトの名無しさん
NGNG0028デフォルトの名無しさん
NGNG0029デフォルトの名無しさん
NGNG0030デフォルトの名無しさん
NGNG# ruby -e 'puts "%x" % 10'
a
0031名無し
NGNG商を求める際には余りを記録しておく。
商が0になったら、余りを後ろから順に並べる。それが答え。
例えば10進数300を16進数に変えるなら
300 / 16 = 18 余り 12(C)
18 / 16 = 1 余り 2
1 / 16 = 0 余り 1
で、下から順に余りを並べたのが答え。
つまり16進数12Cが10進数300になる。
0032デフォルトの名無しさん
NGNGwhile (a) {
b = a % 16;
a /= 16;
*buf-- = b + b>9?('a'-10):'0';
}
0033デフォルトの名無しさん
NGNGこのコードって動いてる?
0034デフォルトの名無しさん
NGNG不吉なコード
かならずよくないことがおこる
0036デフォルトの名無しさん
NGNG× *buf-- = b + b>9?('a'-10):'0';
○ *buf-- = b + (b>9?('a'-10):'0');
bufは、適当なchar配列の後方にポイントしておく(NULのひとつ手前に)
0037デフォルトの名無しさん
NGNG中学校の数学なら<sub>(16)</sub>って感じだNE!
0038デフォルトの名無しさん
NGNGマッチを1本だけ動かして16にしなさい。
0039デフォルトの名無しさん
NGNG処理系はなんですか?
0040hage
NGNG_
| | ̄| \\ | |_
| |_| // | |_|
0041デフォルトの名無しさん
NGNG| _ \\ |_
| |_| // | |_|
だとばっかり‥‥
0042デフォルトの名無しさん
NGNG?HEX$(A)
だろ? 桁幅調整したいなら
?RIGHT$("000"+HEX$(A),4)
でもいいと思うよ。
0043ひろゆ子@暫定管&rlo;&lre;直人
NGNG0044ひろゆ子@暫定管&rlo;&lre;直人
NGNG0045ひろゆ子@暫定管&rlo;&lre;直人& ◆ekkdFK/o
NGNG0046デフォルトの名無しさん
NGNGってついついやっちゃうけど、これってコスト高いんだよね
0047デフォルトの名無しさん
NGNG↓
諸外国に戦争ふっかけて勝利する。
↓
16進数の使用を奨励する。
↓
頃合を見て、憲法で10進数使用を禁止する。
ま、がんばってくれ >1
0048デフォルトの名無しさん
NGNG0049デフォルトの名無しさん
NGNG0051デフォルトの名無しさん
NGNGそうなんだよ
結構遅いしメモリつーかスタック使うし・・・
0052デフォルトの名無しさん
NGNGstatic char *_toHex(char *buf, unsigned int x){
if (15 < x) buf = _toHex(buf, x >> 4);
x &= 15;
*buf = (x<10 ? '0'+x : 'A'+x-10);
return buf+1;
}
char *toHex1(char *buf, unsigned int x){
*_toHex(buf, x) = '\0';
return buf;
}
char *toHex2(unsigned int x){
static char buf[9];
return toHex1(buf, x);
}
unsigned int toInt(const char *buf){
unsigned int x = 0;
for(; *buf; buf++) x = x*10 + *buf - '0';
return x;
}
int main(int argc, char *argv[]){
return 1<argc ? puts(toHex2(toInt(argv[1]))) : puts("give me a number.");
}
一度整数型にしてるという卑怯さ加減の凄さはもはや芸術的(;´ー`)
toHex2 はスレッドセーフですらないっ
■ このスレッドは過去ログ倉庫に格納されています