[問題] 請教一個程式設計技巧

看板C_and_CPP作者 (Breezing...)時間12年前 (2013/09/13 14:51), 編輯推噓2(2015)
留言17則, 11人參與, 最新討論串1/2 (看更多)
有個字串/整數轉換問題想請教各位. 以前常看到很多程式在處理數字構成 的字串時實際上都是存成整數陣列, 例如 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

09/13 15:04, , 1F
你的例子蠻特別的…
09/13 15:04, 1F

09/13 15:08, , 2F
我覺得你的問題可能是endianess...
09/13 15:08, 2F

09/13 15:13, , 3F
樓上+1, 看起來應該是 endian 問題
09/13 15:13, 3F

09/13 15:39, , 4F
標題 ...
09/13 15:39, 4F

09/13 16:22, , 5F
不懂 atoi/itoa 還是我理解錯誤?
09/13 16:22, 5F

09/13 16:44, , 6F
我覺得你提到的事情還滿特別的 或許你可以稍微描述一下
09/13 16:44, 6F

09/13 20:39, , 7F
你的int為什麼只有16 bit?
09/13 20:39, 7F

09/13 22:57, , 8F
樓上想的問題跟我想的一樣...
09/13 22:57, 8F

09/13 23:09, , 9F
只有我有想到原 PO 可能在問 BCD 嗎?
09/13 23:09, 9F


09/13 23:10, , 11F
雖然原 PO 好像把 endianness 的問題跟這個混在一起了
09/13 23:10, 11F

09/13 23:55, , 12F
16bits 的 int 有可能是 8051 的 c code
09/13 23:55, 12F

09/13 23:59, , 13F
我也覺得是 endian/endianess 問題
09/13 23:59, 13F

09/14 09:08, , 14F
應該如 LPH66 講的是 BCD 問題, 很抱歉我前面沒講得
09/14 09:08, 14F

09/14 09:10, , 15F
很清楚用來儲存的陣列應該是 unsigned char
09/14 09:10, 15F

09/14 09:16, , 16F
不過我的問題還是為什麼轉成 BCD 時一定要那樣的排列
09/14 09:16, 16F

09/14 09:16, , 17F
方式
09/14 09:16, 17F
文章代碼(AID): #1IChNwSJ (C_and_CPP)
文章代碼(AID): #1IChNwSJ (C_and_CPP)