C#面试问题
回答
每个字节都有8位,它们在(1)或关闭(0)上。所以你想打开指定的位,使用按位运算符。
怎么样与72(01001000)ORing?
myFlag = myFlag | 72;
这将返回正确的值,但不会修改标志。 'myFlag = myFlag | 72;'也许是面试官想要的。 – mah 2011-06-10 15:35:47
@mah你是对的。 – 2011-06-10 15:37:57
甚至可以缩短到'myFlag | = 72;' – 2011-06-10 15:45:21
你没有指定如何申报“myFlag”,但是这应该是你在找什么。
[Flags]
enum BitFlags : byte
{
One = (1 << 0),
Two = (1 << 1),
Three = (1 << 2),
Four = (1 << 3),
Five = (1 << 4),
Six = (1 << 5),
Seven = (1 << 6),
Eight = (1 << 7)
}
static void Main(string[] args)
{
BitFlags myFlag = BitFlags.Four | BitFlags.Seven;
Console.WriteLine(Convert.ToString((byte) myFlag, 2));
}
编辑:更新了C#的清晰度和使用“Flags”属性,这可能是沿着什么样的面试官在寻找线条更。
谢谢您的回复... – Mahendran 2011-06-10 17:53:23
如果有助于查看字节串,那么可以使用Convert类将整数转换为位串并反转以帮助可视化按位或的效果。以下是创建一个触发的标志的示例,该触发的位已打开。你可以用另一个位串来关闭它们。
var toggleBitsOn = "01001000";
var toggleBitsOff = "10110111";
var toggle = Convert.ToInt32(toggleBitsOn, 2);
var toggledOnFlag = myFlag | toggle;
Console.WriteLine(Convert.ToString(toggledOnFlag, 2));
- 1. 面试问题(在C#中)
- 2. 面试问题
- 3. Javascript问题面试问题
- 4. 好C#面试问题预定
- 5. MySQL面试问题
- 6. Websphere面试问题
- 7. ETL面试问题?
- 8. Lucene面试问题
- 9. ASP.net面试问题
- 10. GWT面试问题
- 11. Google面试问题
- 12. 测试面试问题
- 13. C++操作符重载问题在面试在线测试
- 14. 算法面试问题
- 15. 谷歌面试问题
- 16. 奇ç面试问题
- 17. C(不是C++)通过价值/参考面试问题
- 18. 测试教程和面试问题
- 19. visual C++ 2010调试问题
- 20. 问题试图在C
- 21. Visual C++测试问题
- 22. 的Visual C++调试问题
- 23. C - 调试内存问题
- 24. Turbo C++调试问题
- 25. C#编程测试问题
- 26. C#单元测试问题
- 27. c#面板布局问题
- 28. 面向对象问题C++
- 29. 面向对象问题C#
- 30. 你问什么Hibernate面试问题?
最右边,不是“最写”,也许? – MPelletier 2011-06-10 15:30:35
“使用C#,使用C#的最高有效位是第一位的约定,打开名为myFlag的”byte“的第4和第7位”看起来是个问题。 – Guvante 2011-06-10 15:33:57
如果你甚至没有试图用体面的英语来提出一个体面的问题,并且提供体面和足够的细节让我们理解你想要达到的目标,你如何期待我们能够帮助你? – RobinJ 2011-06-10 15:35:41