【发布时间】:2021-02-28 19:49:45
【问题描述】:
我正在尝试将我在 Java 中看到的内容重写为 Go。
在 Java 中,该示例使用 (char)1573346; 的类型转换将 int 1573346 转换为 char Ǣ
打印新值的 int 后,我得到 482; 的十进制 ascii
int num = 1573346;
char ascii = (char)num; // Ǣ
int asciiNum = (int)ascii; // 482
我找不到在 Go 中做同样事情的方法。
【问题讨论】:
-
使用
rune而不是char -
将
1573346截断为 16 位真的是您打算在这里做的吗?数字1573346不直接映射到 unicode 代码点,所以这个结果只是因为 java 内部使用 16 位字符。 -
出于好奇,这个的用例是什么? (它看起来不像“真正的”Java 代码:它是您编写的那种代码来说明强制转换的怪癖,而不是因为您真的想要这些怪癖。)
-
用例是使用密钥进行异或加密。上面的代码只是使用 rune 而不是 char 时不起作用的部分。
-
您知道
'Ǣ'和482是完全相同的值吗?刚才我发现这个问题甚至不是在问值的“转换”,而是试图问如何以不同的格式呈现相同的值。
标签: java go casting char integer