全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1278
推到 Plurk!
推到 Facebook!

請問,關於 32 bit 以上的數據如何計算顯示?

尚未結案
x8051
一般會員


發表:12
回覆:18
積分:6
註冊:2004-04-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-05-03 21:00:36 IP:59.113.xxx.xxx 未訂閱
如果已經宣告成 unsigned long 的型態數據,結果還是不夠用怎麼辦? long 為32bit位原長度!! 還有如何將計算結果以16進位顯示,因為很長,所以轉成文字型態!
Stallion
版主


發表:52
回覆:1600
積分:1995
註冊:2004-09-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-05-03 21:31:44 IP:211.22.xxx.xxx 未訂閱
不是還有double型態,再加上修飾子就可! 另外可用庫存函數itoa或sprintf來轉換各種進位。 ----------------------------------------------- Creation is the fundation of promotion.
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-05-03 23:10:53 IP:221.169.xxx.xxx 未訂閱
引言: 如果已經宣告成 unsigned long 的型態數據,結果還是不夠用怎麼辦? long 為32bit位原長度!! 還有如何將計算結果以16進位顯示,因為很長,所以轉成文字型態!
自己寫一個 class 叫做 biginteger 然後用字串來做。 比方說 "100" * "100" 你就自己用小學由個位數乘完加上十位乘完加上百位。。。。。 這樣的方式去處理。 這樣就可以超過32bit。
x8051
一般會員


發表:12
回覆:18
積分:6
註冊:2004-04-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-05-03 23:40:29 IP:59.113.xxx.xxx 未訂閱
引言: 自己寫一個 class 叫做 biginteger 然後用字串來做。 比方說 "100" * "100" 你就自己用小學由個位數乘完加上十位乘完加上百位。。。。。 這樣的方式去處理。 這樣就可以超過32bit。
我想使用陣列方式宣告 例: unsigned char a[8]; //加數 unsigned char b[8]; //被加數 unsigned char c[8]; //結果 c[1]=a[1] b[1]; 進位該如何判斷? 是否還有更簡單的方式? 發表人 - x8051 於 2005/05/03 23:41:55
jimmy_and_you
初階會員


發表:20
回覆:74
積分:33
註冊:2003-05-12

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-05-04 01:43:35 IP:61.64.xxx.xxx 未訂閱
記得C BUILDER有64位元的整數阿,好像是int64吧,去HELP找找應該有...
x8051
一般會員


發表:12
回覆:18
積分:6
註冊:2004-04-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-05-04 01:57:12 IP:59.113.xxx.xxx 未訂閱
引言: 記得C BUILDER有64位元的整數阿,好像是int64吧,去HELP找找應該有...
感謝提供說明!! 不過如果大於int64 或更大的話?怎麼辦?
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-05-04 09:07:38 IP:221.169.xxx.xxx 未訂閱
引言: 我想使用陣列方式宣告 例: unsigned char a[8]; //加數 unsigned char b[8]; //被加數 unsigned char c[8]; //結果 c[1]=a[1] b[1]; 進位該如何判斷? 是否還有更簡單的方式?
判斷進位???? 加起來值大於 9 就進位啊。 再提示一點 '0', '1'.....你去看一下 ASCII 表。 可以直接用減法,就得到它的 數字。^_^
stellos
中階會員


發表:24
回覆:84
積分:51
註冊:2004-06-08

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-05-05 01:56:45 IP:220.138.xxx.xxx 未訂閱
宣告double就可以啦    依你的要求蠻簡單的 double i,j; char str[100]; i=12884901887; j=9999; i+=j; _i64toa(i,str,16); //str就得到16進位字串啦 >
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-05-05 08:01:26 IP:221.169.xxx.xxx 未訂閱
引言: 宣告double就可以啦 依你的要求蠻簡單的 double i,j; char str[100]; i=12884901887; j=9999; i =j; _i64toa(i,str,16); //str就得到16進位字串啦 >>< face="Verdana, Arial, Helvetica"> double 喔。我也很希望國稅局可以用這樣來計稅。 因為那會有很大的誤差。^_______^
jimmy_and_you
初階會員


發表:20
回覆:74
積分:33
註冊:2003-05-12

發送簡訊給我
#10 引用回覆 回覆 發表時間:2005-05-06 00:00:11 IP:61.64.xxx.xxx 未訂閱
引言:
引言: 記得C BUILDER有64位元的整數阿,好像是int64吧,去HELP找找應該有...
感謝提供說明!! 不過如果大於int64 或更大的話?怎麼辦?
那可能就要用字串去模擬了,可以在站內找找相關的文章 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=64716 發表人 - jimmy_and_you 於 2005/05/06 00:06:09
totony
一般會員


發表:3
回覆:20
積分:14
註冊:2004-05-12

發送簡訊給我
#11 引用回覆 回覆 發表時間:2005-05-06 17:17:38 IP:210.243.xxx.xxx 未訂閱
我想這篇文章應該是你需要的~    無限長度數字(整數,小數)加減乘除運算 http://delphi.ktop.com.tw/topic.php?topic_id=50498 BCB我很嫩…但我不想永遠嫩下去~
系統時間:2024-11-23 19:30:24
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!