→ stupid0319:INT64 i = (addr+11) + (addr+10)*10 ......... 06/18 12:53
→ purincess:樓上 他就說不支援了咩XD 06/18 14:03
→ diabloevagto:自己做大數,分成兩部份,H跟L兩種 06/18 14:13
→ diabloevagto:這個方式在mcu上的regisit也滿常用到的 06/18 14:14
→ diabloevagto:簡單來說,不支援直接64,那我就用兩個32兜起來 06/18 14:14
樓上大大,我瞭解您說的原理,
比較討厭的是因為這個數字是由使用者輸入。
並且有一些歷史包袱,
只知道user是用ASCII輸入,
所以其實一開始放在buffer裡的是0x39,0x39,0x39,......(12 Bytes)
※ 編輯: WillyLin 來自: 59.124.0.175 (06/18 16:10)
→ EdisonX:想請教,是要用組語還是 c ?? 06/18 16:40
→ WillyLin:其實用組語或C都可以 06/18 16:47
→ diabloevagto:既然你已經知道輸入的ascii,就簡單的將他轉換成int 06/18 16:54
推 EdisonX:這問題似乎要先定義,是要從string轉成二進位的大數,還是從 06/18 17:03
→ EdisonX:string轉成十進位的大數,都可以做顯示與運算,但強項不同. 06/18 17:04
抱歉...沒有說清楚
讓使用者輸入的是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)
推 stupid0319:我想到FBLD跟FISTP 06/18 18:28