[問題] 32bit機器上輸入12 digits數字
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
非ARM的32 bit 處理器提供的 C compiler, 不支援64bit長整數資料型態
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
None
若輸入 999,999,999,999 -->12 digits
在記憶體內先存成
addr 0x09
addr+1 0x09
...
addr+11 0x09
最後希望可以正確的轉成
addr 0xFF
addr+1 0x0F
addr+2 0xA5
addr+3 0xD4
addr+4 0xE8
應該怎麼做呢?
謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.124.0.175
※ 編輯: WillyLin 來自: 59.124.0.175 (06/18 11:53)
※ 編輯: WillyLin 來自: 59.124.0.175 (06/18 12:52)
→
06/18 12:53, , 1F
06/18 12:53, 1F
→
06/18 14:03, , 2F
06/18 14:03, 2F
→
06/18 14:13, , 3F
06/18 14:13, 3F
→
06/18 14:14, , 4F
06/18 14:14, 4F
→
06/18 14:14, , 5F
06/18 14:14, 5F
樓上大大,我瞭解您說的原理,
比較討厭的是因為這個數字是由使用者輸入。
並且有一些歷史包袱,
只知道user是用ASCII輸入,
所以其實一開始放在buffer裡的是0x39,0x39,0x39,......(12 Bytes)
※ 編輯: WillyLin 來自: 59.124.0.175 (06/18 16:10)
→
06/18 16:40, , 6F
06/18 16:40, 6F
→
06/18 16:47, , 7F
06/18 16:47, 7F
→
06/18 16:54, , 8F
06/18 16:54, 8F
推
06/18 17:03, , 9F
06/18 17:03, 9F
→
06/18 17:04, , 10F
06/18 17:04, 10F
抱歉...沒有說清楚
讓使用者輸入的是10進位的數,最大到999,999,999,999。
原來提供輸入的函式是存成char array,所以會變成
addr 0x39
addr+1 0x39
...
addr+11 0x39 (共12 Bytes) 這也是我說的包袱的部分....沒法改
最後要輸出給另外一個I/O的必須變成 0xE8D4A50FFF (999,999,999,999的16進位)
addr 0xFF
addr+1 0x0F
addr+2 0xA5
addr+3 0xD4
addr+4 0xE8
就是從0x39,0x39,...的char arry轉成0xE8D4...FF這邊
因為compiler不支援64 bit整數
所以不知道要怎麼轉:D
※ 編輯: WillyLin 來自: 59.124.0.175 (06/18 17:41)
推
06/18 18:28, , 11F
06/18 18:28, 11F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):