所以我正致力于将一小段代码从 VC++ 移植到 .NET。我一直是一个 VB 的人,在 C# 中涉猎过一点,但并不多,对 VC++ 几乎一无所知。是的,我知道,尝试从您一无所知的语言中移植代码可能是个坏主意,但我不认为为了移植而花费不必要的时间来学习语言的进出几百行代码。我已经设法学到了足够多的东西来移植它,但是我仍然不清楚。这是VC++代码:
#define ES16(_val) \
((u16)(((((u16)_val) & 0xff00) >> 8) | \
((((u16)_val) & 0x00ff) << 8)))
#define ES32(_val) \
((u32)(((((u32)_val) & 0xff000000) >> 24) | \
((((u32)_val) & 0x00ff0000) >> 8 ) | \
((((u32)_val) & 0x0000ff00) << 8 ) | \
((((u32)_val) & 0x000000ff) << 24)))
#define ES64(_val) \
((u64)(((((u64)_val) & 0xff00000000000000ull) >> 56) | \
((((u64)_val) & 0x00ff000000000000ull) >> 40) | \
((((u64)_val) & 0x0000ff0000000000ull) >> 24) | \
((((u64)_val) & 0x000000ff00000000ull) >> 8 ) | \
((((u64)_val) & 0x00000000ff000000ull) << 8 ) | \
((((u64)_val) & 0x0000000000ff0000ull) << 24) | \
((((u64)_val) & 0x000000000000ff00ull) << 40) | \
((((u64)_val) & 0x00000000000000ffull) << 56)))
有人可以解释这里发生了什么吗?并且可能提供一些关于如何在 VB.NET 中重新编写它的见解(尽管,如果我知道发生了什么,我肯定可以自己重新编写它,哈哈)。
与往常一样,提前感谢大家。