js大神能帮助把这几行js代码转为c#代码吗? 搞了半天,结果总是不对, 也不知道哪里出了问题,特来此求助

WDYDXF 2016-08-31 01:05:39
js代码如下:

_base1KeyStr="ABCDEFGHIJKLMDHDGSY"
function encode(a) {
var f = "", b, c, d, e, g, n, l = 0;
for (a = (a); l < a.length; )
b = a.charCodeAt(l++),
c = a.charCodeAt(l++),
d = a.charCodeAt(l++),
e = b >> 2,
b = (b & 3) << 4 | c >> 4,
g = (c & 15) << 2 | d >> 6,
n = d & 63,
isNaN(c) ? g = n = 64 : isNaN(d) && (n = 64),
f = f + _base1KeyStr.charAt(e) + _base1KeyStr.charAt(b) + _base1KeyStr.charAt(g) + _base1KeyStr.charAt(n);
return f
}


...全文
244 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2016-08-31
  • 打赏
  • 举报
回复
如果你补齐按 base64 标准补齐 _base1KeyStr _base1KeyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqistuvwxyz0123456789+/=" 那么你的这个代码就是 base64 编码程序 如果将 _base1KeyStr 打乱,那么就是个加密程序 翻译时只需注意到 c = a.charCodeAt(l++), d = a.charCodeAt(l++), 在 l 等于 a.length - 1 时,c、d 都是 NaN 而 C# 会报索引越界错
  • 打赏
  • 举报
回复
比如后面的就是C#里对应的写法啊……
xuzuning 2016-08-31
  • 打赏
  • 举报
回复
没注意语句间是 逗号,算我没说! 不过既然命名为 encode(编码),那么就应该有 decode(解码) 但是 encode('12345') 和 encode('123456') 得到的都是 MIDD ,又如何解码呢?
WDYDXF 2016-08-31
  • 打赏
  • 举报
回复
引用 4 楼 xuzuning 的回复:
for 循环没有用括号括起,显然是不对的 请贴出正确的代码!
谢谢回复. 版主大人好. 这是js代码, 不是C#. 我求助的是把js代码翻译为C#.
WDYDXF 2016-08-31
  • 打赏
  • 举报
回复
引用 5 楼 starfd 的回复:
charCodeAt 就是 字符串的强转,比如(int)a[0] charAt就是a[0]这种 isNaN不可能存在 最后是字符串相加,不是数字相加
版主大人早安, 这个代码是js的, 不是C#, 我想把这段代码翻译为C#
  • 打赏
  • 举报
回复
charCodeAt 就是 字符串的强转,比如(int)a[0] charAt就是a[0]这种 isNaN不可能存在 最后是字符串相加,不是数字相加
xuzuning 2016-08-31
  • 打赏
  • 举报
回复
for 循环没有用括号括起,显然是不对的 请贴出正确的代码!
WDYDXF 2016-08-31
  • 打赏
  • 举报
回复
求助
wdydxf1 2016-08-31
  • 打赏
  • 举报
回复
求助
WDYDXF 2016-08-31
  • 打赏
  • 举报
回复
引用 10 楼 xuzuning 的回复:
如果你补齐按 base64 标准补齐 _base1KeyStr _base1KeyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqistuvwxyz0123456789+/=" 那么你的这个代码就是 base64 编码程序 如果将 _base1KeyStr 打乱,那么就是个加密程序 翻译时只需注意到 c = a.charCodeAt(l++), d = a.charCodeAt(l++), 在 l 等于 a.length - 1 时,c、d 都是 NaN 而 C# 会报索引越界错
谢谢指点, 原来是base64,
  string s = "qwertyuiopasdfghjklzxcvbnm";

            Console.Write(Convert.ToBase64String(Encoding.UTF8.GetBytes(s)));
            Console.ReadKey();
WDYDXF 2016-08-31
  • 打赏
  • 举报
回复
引用 8 楼 xuzuning 的回复:
没注意语句间是 逗号,算我没说! 不过既然命名为 encode(编码),那么就应该有 decode(解码) 但是 encode('12345') 和 encode('123456') 得到的都是 MIDD ,又如何解码呢?
midd全拼是啥, 我去百度搜索搜出来的都是苍老师一类的
wdydxf1 2016-08-31
  • 打赏
  • 举报
回复
都睡了吗
【有功-无功协调优化】基于改进多目标粒子群优化算法(小生境粒子群算法)的配电网有功-无功协调优化研究(Matlab代码实现)内容概要:本文围绕“基于改进多目标粒子群优化算法(小生境粒子群算法)的配电网有功-无功协调优化研究”展开,重点介绍了利用小生境粒子群算法对配电网中的有功与无功功率进行协调优化的方法。研究结合Matlab代码实现,旨在降低网络损耗、提升电压质量,并增强配电网运行的经济性与稳定性。文中详细阐述了改进多目标粒子群算法的设计思路,包括引入小生境机制以增强种群多样性、避免早熟收敛,同时构建了综合考虑有功力调节、无功补偿装置投切及分布式电源协同控制的优化模型。通过在标准测试系统(如IEEE33节点系统)上的仿真验证,展示了该方法在多目标优化中的有效性与实用性。; 适合人群:具备电力系统基础知识和Matlab编程能力,从事电力系统优化、智能算法应用及相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于含分布式电源的主动配电网运行优化;②解决多目标环境下有功与无功资源的协同调度问题;③为配电网节能降损、电压调控提供算法支持与仿真验证手段; 阅读建议:建议结合提供的Matlab代码进行仿真实践,重点关注算法参数设置、适应度函数设计及多目标解集的Pareto前沿分析,同时可扩展至不同网络结构与运行场景以加深理解。

111,120

社区成员

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

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

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