teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

コメントで問われた件に関する追記

2020/12/01 07:51

投稿

fana
fana

スコア12229

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
  ```