草庐IT

汇编移位指令

全部标签

c# - 为什么在值类型上隐式调用 toString 会导致框指令

这更像是一个“想知道为什么”而不是一个特定的问题,但请看下面的代码staticvoidMain(string[]args){intval=10;Console.WriteLine("valis{0}",val);//(1)Console.WriteLine("valis{0}",val.ToString());//(2)}情况(1)输出以下ILIL_0000:nopIL_0001:ldc.i4.s10IL_0003:stloc.0IL_0004:ldstr"valis{0}"IL_0009:ldloc.0IL_000a:box[mscorlib]System.Int32IL_000f:

c# - 构建一个汇编程序

我需要为我构建的CPU架构构建一个汇编程序。架构类似于MIPS,但这并不重要。我开始使用C#,尽管C++更合适。(C#对我来说意味着更快的开发时间)。我唯一的问题是我无法为这个应用程序提供好的设计。我正在构建一个2pass汇编程序。我知道每次通过时我需要做什么。\我已经实现了第一遍并且我意识到如果我必须在同一行上排列汇编代码......不会抛出错误。这只意味着解析技术不佳。所以万能的程序员,汇编之父请教我应该怎么做。我只需要支持符号和数据声明。指令具有固定大小。如果您需要更多信息,请告诉我。 最佳答案 我写过三四个简单的汇编器。在不

c# - C# 中的快速数组移位实现?

我需要将数组向右和向左移动N个位置。从我移动到的一侧弹出的项目必须在另一侧返回。右移13:[0,1,2,3,4,5,6,7,8,9]->[7,8,9,0,1,2,3,4,5,6]左移15:[0,1,2,3,4,5,6,7,8,9]->[5,6,7,8,9,0,1,2,3,4]此操作将发生数百万次并且必须非常快。我当前的实现如下。请查看并建议是否需要进行一些优化。if(shift>0){intoffset=array.Length%shift;if(offset>0){byte[]temp=newbyte[offset];if(!right){Array.Copy(array,temp,

c# - 找不到类型或命名空间名称 'BundleCollection'(是否缺少 using 指令或程序集引用?)

所以,我在C#中有一个MVC4项目,我正在使用VisualStudioForWeb2012Express。由于以下错误,我无法编译项目:找不到类型或命名空间名称“BundleCollection”(是否缺少using指令或程序集引用?)通常,这意味着缺少库。因此,在互联网上快速搜索后,我使用NuGet安装了Microsoft.AspNet.Web.Optimization,但仍然没有用。让我感兴趣的是BundleCollections应该默认为应用程序所知。我只能想象我添加了一个把一切都搞砸了的依赖项,但我真的不能确定。我该如何解决这个问题?我在这里缺少什么?代码:usingSyste

c# - 在 C# 中维护 "clean"using 指令列表有什么好处?

我知道VS2008和Resharper一样有用于清除using指令的remove和sort功能。除了您的代码“干净”并消除引用将来可能不存在的namespace的问题之外,维护一个“干净”的using指令列表有什么好处?更少的代码?更快的编译时间? 最佳答案 如果您总是只有您需要的using指令,并且总是对它们进行适当的排序,那么当您比较两个版本的代码时,您永远不会看到不相关的更改。此外,如果您有一组简洁的using指令,那么任何查看代码的人都可以通过查看using指令来粗略了解将要使用的内容。

c# - 这个 C# "using"指令是什么?

我在代码示例中看到了这个C#using语句:usingStringFormat=System.Drawing.StringFormat;这是怎么回事? 最佳答案 这是将类型名称别名为更短的名称。同样的语法也可以用于命名空间的别名。参见usingdirective.(根据理查德更新) 关于c#-这个C#"using"指令是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/103

c# - 在 Mono 和 .NET 之间拆分的编译器 #if 指令

这个问题在这里已经有了答案:HowcanIconditionallycompilemyC#forMonovs.Microsoft.NET?(2个答案)关闭9年前。我需要为Mac上的Mono和PC上的.NET双重编译一个类库。我想做一些小改动,但我希望使用编译器指令拆分代码。有什么建议吗?

c# - 为什么在移位 32 位值时只使用移位操作数的低五位? (例如(UInt32)1 << 33 == 2)

考虑以下代码:UInt32val=1;UInt32shift31=val它不会生成警告(关于使用大于32的类次),因此它一定是预期的行为。实际输出到生成的程序集中的代码(或者至少Reflector对代码的解释)是uintval=1;uintshift31=valIL(再次使用Reflector)是L_0000:nopL_0001:ldc.i4.1L_0002:stloc.0L_0003:ldloc.0L_0004:ldc.i4.s0x1fL_0006:shlL_0007:stloc.1L_0008:ldloc.0L_0009:stloc.2L_000a:ldloc.0L_000b:ld

c# - 是否有 resharper 注释指令来禁用类的代码清理?

我有一个类,其中FileHelpers依赖于此类文件中的字段顺序。如果类文件曾经得到一个针对它运行的代码清理,这将导致字段按字母顺序排序并无形地破坏我的类。因为我想避免这种意外发生,是否有resharper注释指令来禁用类的代码清理? 最佳答案 您可以自定义默认成员布局XML文件,并指定您希望在代码清理的“重新排序成员”步骤中忽略的模式。查看Resharper设置下的类型成员布局部分。您可以看到已经使用StructLayoutAttribute为COM接口(interface)和Structs定义了两个异常:您可以轻松地创建自己的I

c# - 如何在 .NET 中使用 CNG(或支持 AES-NI 的指令集)?

我目前使用AES在c#中执行大量文本加密/解密。对于纯软件系统,需要解密大量数据集可能需要相当长的处理器时间。我知道英特尔已经推出了他们的AES-NI指令集,而AMD也推出了类似的指令集。我使用的是.NET4.0,我知道WindowsCNG框架使用这些指令集,但.NET世界中的AesManaged似乎并没有这样做。有一个很棒的项目“CLRSecurity”,它创建了一个从.NET3.5到WindowsCNG的网关,但是它已经一年没有维护了,我宁愿(如果可能的话)不要跳上一个垂死的项目。.NET4中有一个CNGProvider类,但似乎没有足够的文档来为AES拼凑一个有效的解密。有没有人