java—将长整数转换为char/rune

qni6mghb  于 2021-07-11  发布在  Java
关注(0)|答案(2)|浏览(474)

我正在尝试重写我在java中看到的一些东西。
在java中,该示例将int 1573346 到字符 Ǣ 使用类型转换 (char)1573346; 在打印完新值的int之后,我得到了ascii的十进制值 482; ```
int num = 1573346;
char ascii = (char)num; // Ǣ
int asciiNum = (int)ascii; // 482

  1. 我在围棋里找不到同样的方法。
uajslkp6

uajslkp61#

java 的 char 类型为2字节或16位。当你这么做的时候 (char)num 在java中,这将“修剪” num 到16位,保留最低的16位。
要在go中执行相同的操作,请首先将数字转换为 uint16 例如,然后 rune (也可以选择 string 用于打印)。
请注意,在go中不能转换常量值 1573346uint16 因为数字不能用类型的值来表示 uint16 . 因此,首先必须将其赋给一个变量并转换变量的值(这是允许的):

  1. x := 1573346
  2. fmt.Println(string(rune(uint16(x))))

输出:

  1. Ǣ

一样:

  1. fmt.Println(string(rune(482)))

在运动场上试试这些例子。

展开查看全部
t1rydlwq

t1rydlwq2#

https://play.golang.org/p/1evgdanntut

  1. package main
  2. import "fmt"
  3. func main() {
  4. var num = int(1573346)
  5. var ascii = uint16(num)
  6. var asciiNum = int(ascii)
  7. fmt.Printf("%d %c %d", num, ascii, asciiNum)
  8. }
  1. 1573346 Ǣ 482
  2. Program exited.

相关问题