C #: كيفية تحويل طويلة إلى ULONG
-
22-08-2019 - |
سؤال
إذا وأنا أحاول مع BitConverter، فإنه يتطلب مجموعة بايت وليس لدي that.I ديك Int32 وأريد تحويله إلى UInt32.
في C ++ لم يكن هناك مشكلة في ذلك.
المحلول
وويلقي بسيط هو كل ما تحتاج. وبما أنه من الممكن أن تفقد الدقة تفعل هذا، وتحويل صريح.
long x = 10;
ulong y = (ulong)x;
نصائح أخرى
وجرب:
Convert.ToUInt32()
Int32 i = 17;
UInt32 j = (UInt32)i;
وتحرير: السؤال غير واضح ما إذا كان لديك وقت طويل أو عدد صحيح
ونظرا لهذا وظيفة:
string test(long vLong)
{
ulong vULong = (ulong)vLong;
return string.Format("long hex: {0:X}, ulong hex: {1:X}", vLong, vULong);
}
وهذا الاستخدام:
string t1 = test(Int64.MinValue);
string t2 = test(Int64.MinValue + 1L);
string t3 = test(-1L);
string t4 = test(-2L);
وهذه ستكون النتيجة:
t1 == "long hex: 8000000000000000, ulong hex: 8000000000000000"
t2 == "long hex: 8000000000000001, ulong hex: 8000000000000001"
t3 == "long hex: FFFFFFFFFFFFFFFF, ulong hex: FFFFFFFFFFFFFFFF"
t4 == "long hex: FFFFFFFFFFFFFFFE, ulong hex: FFFFFFFFFFFFFFFE"
وكما ترون يتم الاحتفاظ بت تماما، حتى للقيم السالبة.
لتحويل طويلة إلى ULONG، ببساطة يلقي فيه:
long a;
ulong b = (ulong)a;
سوف وC # NOT بطرح استثناء إذا كان رقما سالبا.
لا تنتمي إلى StackOverflow