C言語なら俺に聞け! Part 63
■ このスレッドは過去ログ倉庫に格納されています
0191デフォルトの名無しさん
NGNG//URLデコーディング
string CQuery::decode(const string &s)
{
string t;
for(string::const_iterator p = s.begin(); p != s.end(); ++p){
if (*p == '%') {
if(++p == s.end()) break;
int d = *p;
if(++p == s.end()) break;
int e = *p;
d = (d >= 'A') ? (d & 0xdf) - 'A' + 10 : d - '0';
e = (e >= 'A') ? (e & 0xdf) - 'A' + 10 : e - '0';
if (0 <= d && d < 16 && 0 <= e && e < 16)
t += char(16 * d + e);
} else if(*p == '+'){
t += ' ';
} else{
t += *p;
}
}
return t;
}
というコードがありますが、
d = (d >= 'A') ? (d & 0xdf) - 'A' + 10 : d - '0';
の中の
(d & 0xdf) - 'A' + 10
が何をやっているのかわかりません。どういうことなんでしょうか。
■ このスレッドは過去ログ倉庫に格納されています