关于c#实现c++一样的位寻址

paulsunion paulsunion 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
最近在学习c#,但是遇到一个union的问题,之前有一段代码是c++的,如下,怎样在c#中实现这种功能呢?望高人指点啊,不甚感激。
struct stBitType
{
unsigned int Bit0 :1;
unsigned int Bit1 :1;
unsigned int Bit2 :1;
unsigned int Bit3 :1;
unsigned int Bit4 :1;
unsigned int Bit5 :1;
unsigned int Bit6 :1;
unsigned int Bit7 :1;
};
union unBitConvert
{
struct stBitType BitValue;
unsigned char ucValue;
};
unsigned char modMult02(unsigned char x)
{
union unBitConvert Input,Output;
Input.ucValue=x;

Output.BitValue.Bit0=Input.BitValue.Bit7;
Output.BitValue.Bit7=Input.BitValue.Bit6;
Output.BitValue.Bit6=Input.BitValue.Bit5;
Output.BitValue.Bit5=Input.BitValue.Bit4;
Output.BitValue.Bit2=Input.BitValue.Bit1;

Output.BitValue.Bit1=Input.BitValue.Bit0^Input.BitValue.Bit7;
Output.BitValue.Bit3=Input.BitValue.Bit2^Input.BitValue.Bit7;
Output.BitValue.Bit4=Input.BitValue.Bit3^Input.BitValue.Bit7;

return Output.ucValue;
}
...全文

相关推荐

TUIO_CPP tuio 的c#实现

c# TUIO_CPP tuio 的c#实现可以和 osc通讯的

tanguofu

用snap7搭建虚拟PLC:纯软件环境搞定S7协议通讯调试

在工业自动化项目中,PLC硬件未到场或资源紧张时,上位机、MES、SCADA等系统的通讯开发往往陷入停滞。S7协议作为西门子PLC与上位机之间最常用的通讯协议,其调试并不一定依赖物理设备。通过snap7开源库的Server模式,开发者可以在普通PC上模拟出符合ISO-on-TCP(RFC 1006)标准的S7服务端,完成握手、PDU协商、DB块读写等核心交互。这种虚拟PLC方案不仅能提前暴露地址错误、字节序错乱等逻辑隐患,还能用于自动化测试、现场故障复现以及多设备联动模拟,将通讯调试从硬件排期中解放出来。本

逆狗

C++调用C#的DLL实例程序

C++调用C#的DLL实例程序,压缩包中包含部分程序说明,很小的几行代码,但是C++调用C#的DLL目的已经达到。

canhui2009

C++调用C#的DLL实现方法

SwfDotNet是C#编写的,这是个特别好的读写Swf文件的库。本文讲述了在C++项目中,怎么让C++调用C#的DLL动态链接库文件。 具体的实现步骤如下: 一、创建C# DLL,需要指定应用类型为“类库”,代码: namespace CSLib { public class Class1 { private string name; public string Name { get { return name; } set { name = "Your Name:

weixin_38596117

C#使用CLR调用C++的DLL库

C#使用CLR调用C++的DLL库的windows完整解决方案 说明如下: 1、工程一:C++的DLL 2、工程二:C++的CLR的类库 3、工程三:C#的exe

ggm0928
评论 6
收藏 已收藏
分享
返回顶部
paulsunion
C# 111,128 成员 642,536 内容