- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 VB6 中有这个 If
条件
If ( X AND ( 2 ^ Y)) Then
a = a + " 1"
Else
a = a + " 0"
我想要 C# 中的相同等价物
我试过这样做
if ( X && ( 2 ^ Y)) // ERROR: && can not be used between int to int
a = a + "1";
else
a = a + "0";
但这件事给我一个错误。
这是我要转换成 C# 的完整 VB 代码
For i = 7 To 0 Step -1
If intNumber And (2 ^ i) Then ' Use the logical "AND" operator.
bin = bin + "1"
Else
bin = bin + "0"
End If
Next
在上面的代码中,intNumber
可以是任何数字。
最佳答案
注意:由于原始问题中缺少信息,此答案已被大量编辑。此版本的答案现在基于具有足够信息的更新问题。有关历史记录,请查看编辑日志。
两件事:
&&
用于 bool 表达式之间,确定逻辑与值^
在 C# 中表示 XOR,而不是升幂。你没有问这个问题,但你不可避免地发现了 ^
似乎没有发挥作用。&&
很容易处理,因为它可以用单个 &
代替相反,它具有双重含义,具体取决于上下文。它要么是一个全求值逻辑 AND 运算符(&&
是一个短路运算符),要么是一个按位运算符,这就是您在这里想要的。
^
虽然不同。最直接的等价物是 Math.Pow ,但在这种情况下,可以使用更好的替代方法,即位移位。
案例2^X
可以被认为是将 1 位 X 位置向左移动,并且向左移动位有自己的运算符,<<
运营商。
所以 2^X
可以替换为1 << X
.
在这种情况下,这是您最内层 if 语句的要求:
if ((intNumber & (1 << index)) != 0)
a = a + "1";
else
a = a + "0";
将其插入一个循环中,就像您在底部示例中所做的那样,您会得到:
for (Int32 index = 7; index >= 0; index--)
if ((intNumber & (1 << index)) != 0)
bin = bin + "1";
else
bin = bin + "0";
现在,像这样连接字符串会产生 GC 压力,因此您可能应该将这些数字存储到 Char
中。数组,然后构造字符串,或者使用 StringBuilder 类。否则,您将构建 8 个(根据我的示例)不同大小的字符串,并且您将只使用并保留最后一个。根据具体情况,这可能不会造成问题,但如果您多次调用此代码,它就会累加起来。
这是最终代码的更好版本:
Char[] digits = new Char[8]; // change if you want more/fewer digits
for (Int32 index = 0; index < digits.Length; index++)
if ((intNumber & (1 << index)) != 0)
digits[digits.Length - 1 - index] = '1';
else
digits[digits.Length - 1 - index] = '0';
bin = new String(digits);
然而,更重要的是。在 .NET 中已经有一种方法可以将 Int32 值转换为充满二进制数字的字符串,它就是 Convert.ToString 方法。唯一的区别是它不添加任何前导零,因此我们必须自己添加。
因此,这是您应该使用的最终代码:
String bin = Convert.ToString(intNumber, 2).PadLeft(8, '0');
这会替换整个循环。
关于c# - 等价于 C# 中的 `IF ( X AND ( 2 ^ Y ) ) Then`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/400432/
是: x -= y; 相当于: x = x - y; 最佳答案 不,它们并不等同于您表达它们的方式。 short x = 0, y = 0; x -= y; // This compiles f
这个问题在这里已经有了答案: What is the rationale for all comparisons returning false for IEEE754 NaN values? (1
我在哪里可以找到与 Python maketrans 和 translate 等效的 C# 代码?谢谢! 最佳答案 这应该带你到那里的大部分方式: public class MakeTrans {
我正在 SwiftUI 中构建一个应用程序其中包含很多组件,包括 Text包含长字符串的 View 。 当我在 iPhone 11 上启动该应用程序时,一切正常,但当我在较小的设备(例如 iPhone
这个问题已经有答案了: What is the equivalent lambda expression for System.out::println (2 个回答) Function pointe
我最近在使用 postgres,我必须做一些计算。然而我一直没能模仿Excel的HOUR()函数,我看了official information但这对我帮助不大。 函数接收一个小数,并得到小数的时、分
如果在 cython 中定义了一个指针 vector ,那么与 python 中的 enumerate 类似的函数或过程是什么,用于遍历指针数组中元素的索引和值在 C 声明类型函数内的循环中? 测试.
要选择: select user_id, max(case when value > 0 then timestamp else 0 end) as max_timestamp_whe
如果没有例子,这个问题很难问,所以这里是: #include struct O { }; struct C { template void function1(void (C::*call
我得到了这个结构的实现: struct NodoQ { Etype elem; NodoQ *sig; }; 下面是这段代码吗, typedef NodoQ *PtrNodoQ; PtrNod
我有一些宏需要访问当前类的类型,目前我通过违反 DRY 的模式解决了这个问题: struct ThisScruct{ int a; double b; //example st
我想知道 TensorFlow 的 softmax_cross_entropy_with_logits 是否有等效的 PyTorch 损失函数? 最佳答案 is there an equivalent
我找到了一个 trie 的 java 实现,并希望在 J2ME 中有一个类似的实现。这是代码。 节点类 import java.util.Collections; import java.util.L
我刚刚学习了 GraphQL,我想找到用户 id=2 OR 用户 id=3 现在我将如何进行 GraphQL 查询,我正在使用以下查询获取整个集合 { users() {
假设我有两个 Web 服务:A 和 B。两者都在 Apache 上运行。我希望它们可以从我的主机的不同端口访问:A 来自端口 88,B 来自端口 89。 我可以手动完成(首先创建图像,然后使用“doc
我一直在 excel 中使用一个非常简单的数组公式来处理一些数据集,但是它们变得太大并且在我更新计算时完全破坏了我的计算机性能。 excel表格和MySQL数据库布局如下: +-Timestamp-+
我有一个类,其实例要通过不同于它们携带的数据值的标识来区分。在我的代码中,我打算使用 == 来表示两个实例在它们的数据方面是等价的,并且 is 表示两个变量引用同一个实例,也就是说,他们是相同的。根据
我正在 Windows 中使用 WinSock 2.0 开发代理服务器。如果我想在阻塞模型中开发它,select() 是等待客户端或远程服务器从中接收数据的方法。是否有任何适用的方法可以使用 I/O
我正在将我制作的 Android 应用移植到 iOS。 Android 有一个 Yield() 函数可以将线程从运行中移到线程队列的后面(?)。这很有用,这样该线程就不会占用过多的 CPU 并使其他一
这是否保证始终为真: std::numeric_limits::max() == INT_MAX C++ 标准对此有何规定?我在标准中找不到任何明确说明这一点的引用资料,但我一直在阅读这些内容应该是等
我是一名优秀的程序员,十分优秀!