帮忙把一小段代码翻译成C#

FangYANYI 2011-12-14 04:19:04
#include <stdio.h>
#define MAX_VOLT 2.56
void ValueToBinary(unsigned __int8 v,char *b) {
b[0]=v;
}
void ConvertInitE(double initE, double finalE, char* buf) {
//initE=-1.3
//MAX_VOLT=2.56
//finalE=-1.9
double volt = 0;
unsigned __int16 ivolt;

volt =initE * -1.0;
ivolt = (unsigned __int16)((volt + MAX_VOLT) * 0xFFF / (MAX_VOLT * 2));
unsigned __int8 m_iLow8 = ivolt & 0xFF;
unsigned __int8 m_iHigh4 = (ivolt & 0xf00) >> 8;
//转十六进制
ValueToBinary(m_iHigh4, (char*)buf);
ValueToBinary(m_iLow8, (char*)buf+1);
}
int main() {
char s[2];

ConvertInitE(-1.3,-1.9,s);
printf("%02x %02x\n",(unsigned char)s[0],(unsigned char)s[1]);//0c 0f
return 0;
}
...全文
40 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2011-12-14
  • 打赏
  • 举报
回复
呵呵,这分得的轻松啊。(^O^)
FangYANYI 2011-12-14
  • 打赏
  • 举报
回复
再次非常感谢
赵4老师 2011-12-14
  • 打赏
  • 举报
回复
一稿多投!
using System;
using System.Collections.Generic;
using System.Text;
namespace t
{
class Program
{
public const double MAX_VOLT=2.56;

static void ConvertInitE(double initE, double finalE, byte[] buf)
{
//initE=-1.3
//MAX_VOLT=2.56
//finalE=-1.9
double volt = 0;
ushort ivolt;

volt =initE * -1.0;
ivolt = (ushort)((volt + MAX_VOLT) * 0xFFFu / (MAX_VOLT * 2));
byte m_iLow8 = (byte)(ivolt & 0xFFu);
byte m_iHigh4 = (byte)((ivolt & 0xf00u) >> 8);
//转十六进制
buf[0]=m_iHigh4;
buf[1]=m_iLow8;
}

static void Main(string[] args)
{
byte[] s={0,0};

ConvertInitE(-1.3,-1.9,s);
Console.WriteLine("{0,2:x2} {1,2:x2}",s[0],s[1]);//0c 0f
}
}
}

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧