10進数を16進数に変える方法について
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG008478
NGNGint HexLength(unsigned a)
{
a = a | 1;
a = a | (a >> 16);
a = a | (a >> 8);
a = a | (a >> 4);
a = a | (a >> 2);
a =(a | (a >> 1)) & 0x11111111;
a = a + (a >> 16);
a = a + (a >> 8);
a = a + (a >> 4);
return a & 0xf;
}
誰か検証してみて
0085とにかく即答・失敗
NGNGbegin
Randomize;
for i:=0 to 1000000 do begin
a:= Random(High(Cardinal));
n1:=HexLength(a);
n2:=Length(Format('%x',[a]) );
if n1<>n2 then begin
writeln(Format('%8X : %d %d',[a,n1,n2]));
end;
end;
end;
0086デフォルトの名無しさん
NGNG0087デフォルトの名無しさん
NGNG0088デフォルトの名無しさん
NGNG0089デフォルトの名無しさん
NGNGint i = htoi("0xFF");
俺の環境だけです、他人は知りません。
0090デフォルトの名無しさん
NGNGちょっとまった。その程度ならstrtolを使えば済む話だよね。
0091デフォルトの名無しさん
NGNG右手親指を基点として、
折った指を1としたとき、
10進数で8を表現しようとすると
指が痛い。
0092デフォルトの名無しさん
NGNGつか、8は痛くないぞ、
0093デフォルトの名無しさん
NGNGグワシage
0094デフォルトの名無しさん
NGNGちょっとまった。普通は指を立てたほうが1じゃないのか?
人前で0x04やると殺されるけど。
0095デフォルトの名無しさん
NGNG禿藁wwww
0096デフォルトの名無しさん
NGNG普通は指折り数えない
0097デフォルトの名無しさん
NGNG#include "../Library/lib.c"
char s[256];
itob(1000,s,16);
俺の環境だけです、他人は知りません。
0098棄教者 ◆witdLTi2
NGNG普通の人は指折り数えるけど二進法で数えることはしない。
したがって指の形が0x04になることもない。
0099デフォルトの名無しさん
NGNG0100デフォルトの名無しさん
NGNG左手だとやたら早く数えられる。
二進指折り31まで早数え大会を開催しませう。
0101デフォルトの名無しさん
NGNGhttp://pc.2ch.net/test/read.cgi/linux/1007137554/83
0102デフォルトの名無しさん
NGNG0103デフォルトの名無しさん
NGNG"0123456789abcde"[x]じゃだめ?
0104デフォルトの名無しさん
NGNG20 IF A<=9 THEN PRINT A
30 IF A=10 THEN PRINT"A"
40 IF A=11 THEN PRINT"B"
50 …
0105デフォルトの名無しさん
NGNG約13秒。右手。
0106デフォルトの名無しさん
NGNG駄目かどうか聞く前に、まずは過去の書き込みと
自分のレスの内容を再度確認したほうが良いのでは?
0107デフォルトの名無しさん
NGNG俺、53秒かかった・・・
0108デフォルトの名無しさん
NGNG普通のINTやFLORTにキャストしろってことかな?
0109デフォルトの名無しさん
NGNGxが15だとエラーになるねそれ・・・
0110デフォルトの名無しさん
NGNG0111デフォルトの名無しさん
NGNG終わりにしようや。このスレ。
0112デフォルトの名無しさん
NGNGいや、それやるなら内部ではふつーのfloatなりdoubleなりでいいだろ・・・
0113デフォルトの名無しさん
NGNGそれと平均ではダメな理由も
ところで>>121が言ってるような 16bit の2ドット同時に処理する コード希望
0114デフォルトの名無しさん
NGNG激しく誤爆の予感
0115デフォルトの名無しさん
NGNGおそらく小技スレへのレス
0116デフォルトの名無しさん
NGNGはっきり、間違ったって白状しろよ
0117113
NGNG115は俺ではない。とにかくスマン
0118デフォルトの名無しさん
NGNG0119無責任だが
NGNGBCDっていうのは4bit単位に10進数で表現するコードの事?
例 数1234 を 0x1234 とする
なら もう判ると思うけど 数を10進表現して それを16進として読めばよい
0120デフォルトの名無しさん
NGNGナイスかどうかは知らんけど、これでいいか ?
char s[64];
char *dummy;
sprintf(s, "0x%d", x);
x = strtol(s, &dummy, 16);
0122デフォルトの名無しさん
NGNGこういう奴以外でって事?
void UInt2Bcd(char *b,int l,unsigned u)
{for(b+=l;l--;u/=10)*--b=(char)(u%10);}
0123118
NGNG割算とか嫌だなぁ…
答えてくれた皆さんありがとう。
■ このスレッドは過去ログ倉庫に格納されています