如何在Vala中将int64格式化为大写十六进制?

问题描述 投票:1回答:1

以下示例无法编译

    public static int main (string[] args) {
        var now = new GLib.DateTime.now_utc();
        int64 val = now.to_unix();
        print ("%" + int64.FORMAT + "\n", val);
        print ("%X\n", val);  // ERROR
        return 0;
    }

有一个int64格式的字符串用于十进制表示,但没有一个十六进制表示(请参见Valadoc)。 %X也无效。如何获取int64的大写十六进制格式?

string hex printf vala
1个回答
2
投票

错误是类型错误:参数2:无法从int64转换为uint

print使用printf format string并接受long long类型,该类型指定为至少64位。您可以使用%llX将int64打印为大写十六进制。

工作示例:

void main () {
    var now = new GLib.DateTime.now_utc();
    int64 val = now.to_unix();
    print ("%" + int64.FORMAT + "\n", val);
    print ("%llX\n", val);
}
© www.soinside.com 2019 - 2024. All rights reserved.