C语言转换为C#

mishixiaosenlin 2013-01-14 05:22:49
如题(这应该是C吧) 这段代码怎么翻译成 C#的啊 各位大虾帮帮小弟吧

unsigned char * inkey;
unsigned char key[64];
for (i = 0; i < 8; i++) {
key[8*i] = ((j = *(inkey + i)) / 128) % 2;
key[8*i+1] = (j / 64) % 2;
key[8*i+2] = (j / 32) % 2;
key[8*i+3] = (j / 16) % 2;
key[8*i+4] = (j / 8) % 2;
key[8*i+5] = (j / 4) % 2;
key[8*i+6] = (j / 2) % 2;
key[8*i+7] = j % 2;
}
...全文
280 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
bigbaldy 2013-01-15
  • 打赏
  • 举报
回复
引用 8 楼 mishixiaosenlin 的回复:
引用 6 楼 bigbaldy 的回复:引用 2 楼 mishixiaosenlin 的回复:引用 1 楼 caozhy 的回复:用unsafe就可以了。 这个代码用C#怎么表示呢?能具体给我编译一下吗? 最主要的是 key[8*i] = ((j = *(inkey + i)) / 128) % 2; 这句不懂是什么意思 看清楚是"=*"不是"*=" ink……
是整个代码加一个unsafe{}给扩起来,然后你就能用指针了,别忘了在项目的生成中允许不安全代码
mishixiaosenlin 2013-01-15
  • 打赏
  • 举报
回复
引用 6 楼 bigbaldy 的回复:
引用 2 楼 mishixiaosenlin 的回复:引用 1 楼 caozhy 的回复:用unsafe就可以了。 这个代码用C#怎么表示呢?能具体给我编译一下吗? 最主要的是 key[8*i] = ((j = *(inkey + i)) / 128) % 2; 这句不懂是什么意思 看清楚是"=*"不是"*=" inkey+i地址中所存的值赋给j,C#中可以……
是说 把unsigned 替换成unsafe 这个, 我替换了 但是好像不行啊
wanghui0380 2013-01-14
  • 打赏
  • 举报
回复
看了一下这玩意大概的意思应该等同于c#中的 string inkey="12345678"; byte[] key= Encoding.UTF8.GetBytes(key);
bigbaldy 2013-01-14
  • 打赏
  • 举报
回复
引用 2 楼 mishixiaosenlin 的回复:
引用 1 楼 caozhy 的回复:用unsafe就可以了。 这个代码用C#怎么表示呢?能具体给我编译一下吗? 最主要的是 key[8*i] = ((j = *(inkey + i)) / 128) % 2; 这句不懂是什么意思 看清楚是"=*"不是"*="
inkey+i地址中所存的值赋给j,C#中可以用指针,这行在C#里直接复制都不用改
bigbaldy 2013-01-14
  • 打赏
  • 举报
回复
引用 2 楼 mishixiaosenlin 的回复:
引用 1 楼 caozhy 的回复:用unsafe就可以了。 这个代码用C#怎么表示呢?能具体给我编译一下吗? 最主要的是 key[8*i] = ((j = *(inkey + i)) / 128) % 2; 这句不懂是什么意思 看清楚是"=*"不是"*="
1楼说的很清楚了,unsafe代码即可,基本不用改
lhycl 2013-01-14
  • 打赏
  • 举报
回复
可以直接转化?????????????????????
乐乐434 2013-01-14
  • 打赏
  • 举报
回复
byte inkey; byte[] key = new byte[64]; for (i = 0; i < 8; i++) { key[8 *i] = ((j = *(inkey + i)) / 128) % 2; key[8 *i+1] = (j / 64) % 2; key[8 *i+2] = (j / 32) % 2; key[8 *i+3] = (j / 16) % 2; key[8 *i+4] = (j / 8) % 2; key[8 *i+5] = (j / 4) % 2; key[8 *i+6] = (j / 2) % 2; key[8 *i+7] = j % 2; }
mishixiaosenlin 2013-01-14
  • 打赏
  • 举报
回复
引用 1 楼 caozhy 的回复:
用unsafe就可以了。
这个代码用C#怎么表示呢?能具体给我编译一下吗? 最主要的是 key[8*i] = ((j = *(inkey + i)) / 128) % 2; 这句不懂是什么意思 看清楚是"=*"不是"*="
threenewbee 2013-01-14
  • 打赏
  • 举报
回复
用unsafe就可以了。

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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