extern int toascii(int c); // 定義於
c 轉換為對應的 ASCII 碼值(0-255)。int,實際接受 unsigned char 或 EOF。int,即字符的 ASCII 碼。#define toascii(c) ((c) & 0x7F),保留低 7 位。#include\ #include \ #include \ using namespace std;\ void to_asscii(char *str);\ int main(int argc, char **argv, char **environ) {\ char *str = "dlutbrucezhang";\ to_asscii(str);\ return 0;\ }\ void to_asscii(char *str) {\ int len = strlen(str);\ for (int i = 0; i != len; ++i) {\ cout << str[i] << " : " << toascii(str[i]) << endl;\ }\ }
d : 100\ l : 108\ u : 117\ t : 116\ b : 98\ r : 114\ u : 117\ c : 99\ e : 101\ z : 122\ h : 104\ a : 97\ n : 110\ g : 103\
toascii 通過 & 0x7F 強制映射到 0-127。hash = (hash * 31 + toascii(c)) % TABLE_SIZE。(int)ch 強制轉換即可獲取 ASCII 碼,toascii 非標準 C(POSIX 擴展),跨平台建議用 (unsigned char)ch。char 無法完整表示漢字,需用 wchar_t/char16_t 處理寬字符。void print_ascii_table() {\
for (int i = 32; i < 127; ++i) {\
printf("%3d : '%c' ", i, i);\
if ((i - 31) % 6 == 0) putchar('\\n');\
}\
}
掌握字符與數值轉換,是理解字符串處理、編碼解碼、哈希算法、網絡協議解析的基礎技能。