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

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

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

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

uajslkp61#

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

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

输出:

Ǣ

一样:

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

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

t1rydlwq

t1rydlwq2#

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

package main

import "fmt"

func main() {
    var num = int(1573346)
    var ascii = uint16(num)
    var asciiNum = int(ascii)

    fmt.Printf("%d %c %d", num, ascii, asciiNum)
}
1573346 Ǣ 482
Program exited.

相关问题