回答編集履歴
1
コメントで問われた件に関する追記
answer
CHANGED
@@ -4,4 +4,28 @@
|
|
4
4
|
for( unsigned char c : Code ){ val = (val<<4) + ( c - '0' ); }
|
5
5
|
|
6
6
|
std::cout << std::hex << val << std::endl;
|
7
|
+
```
|
8
|
+
|
9
|
+
---
|
10
|
+
|
11
|
+
A~Fとかも使いたいなら,まぁ,コードの範囲毎に扱えばよいのではないかと.
|
12
|
+
|
13
|
+
```C++
|
14
|
+
inline uint32_t Cvt_AsciiCode_to_Val( unsigned char code )
|
15
|
+
{
|
16
|
+
if( '0'<=code && code<='9' )return (code - '0');
|
17
|
+
if( 'A'<=code && code<='F' )return (code - 'A' + 10);
|
18
|
+
if( 'a'<=code && code<='f' )return (code - 'a' + 10);
|
19
|
+
return 0; //※ここの振る舞いは勝手に決めてどうぞ
|
20
|
+
}
|
21
|
+
|
22
|
+
int main(void)
|
23
|
+
{
|
24
|
+
const unsigned char Code[] = { 0x35, 0x30, 0x30, 0x30, 0x32, 0x41 };
|
25
|
+
uint32_t val = 0;
|
26
|
+
for( unsigned char c : Code ){ val = (val<<4) + Cvt_AsciiCode_to_Val(c); }
|
27
|
+
|
28
|
+
std::cout << std::hex << val << std::endl;
|
29
|
+
return 0;
|
30
|
+
}
|
7
31
|
```
|