c语言uint赋值给int,如何在C#中将uint转换为int?
假設您只想從一種類型中提取32位并將其原樣轉儲到另一種類型中:
uint asUint = unchecked((uint)myInt);
int asInt = unchecked((int)myUint);
目標類型將盲目地選取32位并重新解釋它們。
相反,如果您更有興趣將小數/數值保持在目標類型本身的范圍內:
uint asUint = checked((uint)myInt);
int asInt = checked((int)myUint);
在這種情況下,如果出現以下情況,您將獲得溢出異常
將負int(例如:-1)轉換為uint
在2,147,483,648和4,294,967,295之間投入一個正的uint到int
在我們的例子中,我們希望unchecked解決方案按原樣保留32位,所以這里有一些例子:
例子
int => uint
int....: 0000000000 (00-00-00-00)
asUint.: 0000000000 (00-00-00-00)
------------------------------
int....: 0000000001 (01-00-00-00)
asUint.: 0000000001 (01-00-00-00)
------------------------------
int....: -0000000001 (FF-FF-FF-FF)
asUint.: 4294967295 (FF-FF-FF-FF)
------------------------------
int....: 2147483647 (FF-FF-FF-7F)
asUint.: 2147483647 (FF-FF-FF-7F)
------------------------------
int....: -2147483648 (00-00-00-80)
asUint.: 2147483648 (00-00-00-80)
uint => int
uint...: 0000000000 (00-00-00-00)
asInt..: 0000000000 (00-00-00-00)
------------------------------
uint...: 0000000001 (01-00-00-00)
asInt..: 0000000001 (01-00-00-00)
------------------------------
uint...: 2147483647 (FF-FF-FF-7F)
asInt..: 2147483647 (FF-FF-FF-7F)
------------------------------
uint...: 4294967295 (FF-FF-FF-FF)
asInt..: -0000000001 (FF-FF-FF-FF)
------------------------------
碼
int[] testInts = { 0, 1, -1, int.MaxValue, int.MinValue };
uint[] testUints = { uint.MinValue, 1, uint.MaxValue / 2, uint.MaxValue };
foreach (var Int in testInts)
{
uint asUint = unchecked((uint)Int);
Console.WriteLine("int....: {0:D10} ({1})", Int, BitConverter.ToString(BitConverter.GetBytes(Int)));
Console.WriteLine("asUint.: {0:D10} ({1})", asUint, BitConverter.ToString(BitConverter.GetBytes(asUint)));
Console.WriteLine(new string('-',30));
}
Console.WriteLine(new string('=', 30));
foreach (var Uint in testUints)
{
int asInt = unchecked((int)Uint);
Console.WriteLine("uint...: {0:D10} ({1})", Uint, BitConverter.ToString(BitConverter.GetBytes(Uint)));
Console.WriteLine("asInt..: {0:D10} ({1})", asInt, BitConverter.ToString(BitConverter.GetBytes(asInt)));
Console.WriteLine(new string('-', 30));
}
總結
以上是生活随笔為你收集整理的c语言uint赋值给int,如何在C#中将uint转换为int?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pxe安装linux dhcp失败,51
- 下一篇: sublime c 语言 编译环境搭建,