草庐IT

c - 未知类型名称 'uint32_t' , MinGW

我收到错误unknowntypename'uint32_t'并包含stdint.h。uint8_t不会产生错误,uint16_t也不会。我正在使用MinGW和以下make-lines:#BuildforWindowsunderMinGW#MINGWDBG=-DDEBUG-O0MINGWDBG=-DNDEBUG-Os#MINGWOPT=-W-Wall-mthreads-Wl,--subsystem,console$(MINGWDBG)-DHAVE_STDINTMINGWOPT=-W-Wall-mthreads-Wl,--subsystem,windows$(MINGWDBG)mingw:

c# - uint 和 System.UInt32 有什么区别?

有区别吗,还是它们只是别名? 最佳答案 是的,它们是别名。Here's完整列表。 关于c#-uint和System.UInt32有什么区别?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2071161/

c# - 我应该使用 int 还是 UInt16?

这可能有点微不足道,但在C#中,当在变量中存储网络端口时,您更喜欢int还是UInt16?框架类在处理网络端口时使用int,尽管UInt16实际上表示有效值。 最佳答案 signed(int/short等,而不是uint/ushort)具有作为CLS的优势合规,因此除非您有充分的理由,否则建议这样做。Reint与short-在大多数情况下,使用int(或uint),因为所有运算符都为此进行了优化。如果您只是存储和检索它,那么这当然不是问题。 关于c#-我应该使用int还是UInt16?,

c# - 使用 uint 或 int

当然,我知道无符号整数(uint)和有符号整数(int)之间的基本区别。我注意到在.NET公共(public)类中,名为Length的属性始终使用有符号整数。也许这是因为无符号整数不符合CLS。但是,例如,在我的静态函数中:publicstaticdoubleGetDistributionDispersion(inttokens,int[]positions)参数tokens和positions中的所有元素都不能为负数。如果它是否定的,最后的结果是无用的。因此,如果我对tokens和positions使用int,我必须在每次调用此函数时检查值(并返回无意义的值值或如果发现负值则抛出异常

C# 对 ushort (UInt16) 进行位移

我需要对16位整数(ushort/UInt16)执行按位左移,但C#中的按位运算符似乎仅适用于int(32位)。我如何在ushort上使用 最佳答案 移位后将结果值转换回ushort:ushortvalue=1;ushortshifted=(ushort)(value 关于C#对ushort(UInt16)进行位移,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/3819593/

C# - 将 uint 转换为 byte[]

所以我使用BitConverter.GetBytes()将uint32转换为byte[],但我在数组中的顺序似乎是倒过来的。http://msdn.microsoft.com/en-us/library/1184xdy4.aspx(显示它的byte[]似乎是小端)。有没有比使用linq反转字节数组更好的方法来处理这个问题? 最佳答案 Array.Reverse改变字节顺序。 关于C#-将uint转换为byte[],我们在StackOverflow上找到一个类似的问题:

c# - 在 C# 中使用 UInt32 和 Int32 有什么显着的性能差异

我正在将现有应用程序移植到C#并希望尽可能提高性能。许多现有的循环计数器和数组引用被定义为System.UInt32,而不是我会使用的Int32。使用UInt32和Int32有什么显着的性能差异吗? 最佳答案 简短的回答是“不。任何性能影响都可以忽略不计”。正确答案是“视情况而定”。一个更好的问题是,“当我确定不需要符号时,我应该使用uint吗?”您不能就性能给出明确的"is"或“否”的原因是因为目标平台将最终决定性能。也就是说,性能取决于将要执行代码的处理器和可用的指令。您的.NET代码编译为IntermediateLanguag

c# - Assert.AreEqual 对 int 和 ulong 失败但对 long 和 uint 失败

好吧,我希望我的处理器没有烧毁,因为:[TestMethod]publicvoidtenEqualten(){Int64a=10;UInt32b=10;Assert.AreEqual(a,b);}工作得很好,但是这个:[TestMethod]publicvoidtenNotEqualten(){Int32a=10;UInt64b=10;Assert.AreEqual(a,b);}惨败。你有没有得到相同的结果,还是只有我?如果是,有什么想法,为什么?如果这是.Net4.5的已知问题,那么抱歉垃圾邮件,但我找不到它作为错误。编辑:我找到了重复的here和解释here

c# - 两者之差 'uint'

当您尝试在C#.NET中声明一个值超出其值范围的无符号变量时,它会被标记为编译器错误,但如果您在运行时生成负值并在运行时将其分配给该变量,则该值会换行.uintz=-1;//Willnotcompileuinta=5;uintb=6;uintc=a-b;//Willresultinuint.MaxValue无符号变量在这种情况下换行而不是抛出异常是否有充分的理由?谢谢。 最佳答案 在C#中声明一个未分配的变量不会被标记为错误-尝试为变量分配无效值是。例如,这是一个在声明后未明确分配(假设它是本地的)的变量:uintz;-1不是uin

c# - UInt64 和 "The operation overflows at compile time in checked mode"- CS0220

这感觉像是一个愚蠢的问题,但我似乎看不到答案。我有一个UInt64,它的最大值应该是UInt64.MaxValue18446744073709551615但是,当我尝试分配一个中等大小的数字时,出现“在检查模式下编译时操作溢出”的溢出错误。如果我将它包装在一个“未经检查”的block中,那么它会编译并运行,就像这个变量为零一样:UInt64value1=1073741824*8;//CompileerrorCS0220UInt64value2=8589934592;//Actualvalue-noerror为什么会这样? 最佳答案