看板 C_and_CPP 關於我們 聯絡資訊
有個字串/整數轉換問題想請教各位. 以前常看到很多程式在處理數字構成 的字串時實際上都是存成整數陣列, 例如 1234567891 放到 int tmp[5], tmp 對應的內容變成 tmp[0] -> 21 tmp[1] -> 43 tmp[2] -> 65 tmp[3] -> 87 tmp[4] -> 19 請問這通常是怎麼做的? 如果要反過來把這個整數陣列還原成原本字串 通常又是怎麼作呢? 我現在想的到的方法: 1. 轉整數陣列時依序把每個字元轉成數字, 搭配 & 0xF0 跟 0x0F 還有 << 運算子 轉換. 2. 還原時反過來處理. 不過總覺得應該還有更簡便更漂亮的處理方式. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 42.70.220.50
Feis:你的例子蠻特別的… 09/13 15:04
azureblaze:我覺得你的問題可能是endianess... 09/13 15:08
CaptainH:樓上+1, 看起來應該是 endian 問題 09/13 15:13
Bencrie:標題 ... 09/13 15:39
blackwindy:不懂 atoi/itoa 還是我理解錯誤? 09/13 16:22
pcyu16:我覺得你提到的事情還滿特別的 或許你可以稍微描述一下 09/13 16:44
Schottky:你的int為什麼只有16 bit? 09/13 20:39
tomnelson:樓上想的問題跟我想的一樣... 09/13 22:57
LPH66:只有我有想到原 PO 可能在問 BCD 嗎? 09/13 23:09
LPH66:雖然原 PO 好像把 endianness 的問題跟這個混在一起了 09/13 23:10
saxontai:16bits 的 int 有可能是 8051 的 c code 09/13 23:55
saxontai:我也覺得是 endian/endianess 問題 09/13 23:59
alberthsieh:應該如 LPH66 講的是 BCD 問題, 很抱歉我前面沒講得 09/14 09:08
alberthsieh:很清楚用來儲存的陣列應該是 unsigned char 09/14 09:10
alberthsieh:不過我的問題還是為什麼轉成 BCD 時一定要那樣的排列 09/14 09:16
alberthsieh:方式 09/14 09:16