2012-01-26 140 views
-2

是否有將長整數值8769402740轉換爲整數並仍然保持原始值的方法。我知道使用 (int)long 但它改變了數字的外觀,這就是我想要維護的。將長整數轉換爲整數而不丟失原始值

+0

使用C#,int表示Int32,所以32位;你給我們的長數字使用33位(十六進制2 0AB2 7774),那麼你如何保存價值?你的意思是*號碼*的外觀? – Marco

+0

改變基地?對數很酷。 – SQLMason

回答

0

您需要tp提供更多信息,例如,您嘗試使用哪種語言以及在什麼平臺上?

整數根據大多數情況下使用的處理器的位長而改變。

你也可以通過保持外觀來解釋你的意思嗎?

32位版本的Windows上的整數不能保持值8769402740,因爲它太大。

2

考慮您正在使用C#,因爲你沒有提到你的編程語言和平臺...

這是不可能的。

Int32.MaxValue值是2,147,483,647。這樣你就不能在一個int變量中容納8,769,402,740

參見Casting and Type Conversions (C# Programming Guide)

對於內置數字類型,可製成的隱式轉換時要存儲的值可以適合入變量而不截短或舍入。例如,long類型的變量(8字節 integer)可以存儲int(32位計算機上的4個字節)可以存儲的任何值。如果不丟失數據,反過來是不可能的。

3

使用C#,int表示Int32,所以管理32位數字。
您給我們的長號碼使用33位(十六進制20AB27774),因此轉換後無法保留其值。
因此,您的號碼在32位內被截斷並變爲0AB27774

0

您可以將一個較大的數字「壓縮」到較小的數字,請參閱Shannon Limit。但是,您必須維護一種存儲該數據的方式。由於Marco給出的理由,你要求的是不平凡的或不可能的。