首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当将字母输入到int时,C#会做什么?

当将字母输入到int时,C#会做什么?
EN

Stack Overflow用户
提问于 2012-06-19 13:39:24
回答 5查看 727关注 0票数 1

我们必须为外部接口实现加密。接口的所有者已经给出了如何在我们这边预置相同加密的文档。但是,这个文档是用C#编写的,我们使用的是PHP。

我们所理解的大部分部分,除了它们似乎将散列类型转换为int之外。他们的守则是:

代码语言:javascript
复制
// hashString exists and is a md5 a like string
int[] keyBuffer = new int[hashString.length];
for (int i=0; i<hashString.length; i++) {
    keyBuffer[i] = (int)hashString[i];
}

在PHP中,当将字母转换为int时,可以得到0 (int)。因为我们无法想象这就是第三方的意思,我们相信C#会做其他的事情。

是否也将C#转换为int 0,或者可能转换为char?

第二,最初的hashString是320长。这意味着代码将创建一个320长的int??在PHP中,您没有像C#这样保留内存的想法。但是当我们尝试把320长的字符串输入到int时,我们得到了一个int,它是19 'chars‘长。

C#在输入字符串中很长的“数字”时也会创建一个较短的int吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-06-19 13:41:34

您正在将char转换为intchar是一个UTF-16代码单元-一个无符号的16位整数(范围是[0, 65535]).你得到的数值,基本上,扩大为一个32位有符号整数。例如,'A'以65结尾,而欧元符号(U+20AC)最终为8364 (0x20ac)。

至于第二部分--您正在创建一个int,您正在创建一个int数组。是的,您将创建一个包含320个元素的数组。

票数 10
EN

Stack Overflow用户

发布于 2012-06-19 13:42:02

C#字符串是UTF16。当您将UTF16字符强制转换为int时,它只是将16位UTF16字符值复制到32位int中。

票数 1
EN

Stack Overflow用户

发布于 2012-06-19 13:47:00

C#可以将字符强制转换为int,并给出字符code.The代码,上面是一个字符串,hashString,并将其转换为整数数组keybuffer。C#能够使用索引器[]语法将字符串视为字符数组。上面的代码将生成一个int数组,散列字符串中的每个字符只有一个,每个int将是相应字符的字符代码。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11102194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档