Go:符文,Int32和二进制编码

时间:2016-02-29 18:12:51

标签: unicode go binary

我认为key:MetaTag Value: key:BrandName Value:value rune的别名,因为它应该是hold all valid Unicode code points。目前显然有about 1,114,112 Unicode code points,因此有必要将它们存储在四位或int32大小的寄存器中,这可以存储最多2,147,483,647的整数。

然而,我有一些关于UTF-8字符和整数的二进制编码的问题。

  • 似乎int32rune都占用了四个字节。如果2147483647是能够以四个字节(四位八位字节)表示的最高整数,为什么它的二进制表示int32,即31 1'而不是32?它的标志有点保留吗? binary converter I used中可能存在错误,因为-2147483648仍然可以用4个字节表示(因为它仍然能够在{{{{}}中表示。 1}}类型),但它在那里以1111111111111111111111111111111输出,即33 1& s和31 0'它们明显超出了4字节的容差。那里的故事是什么?
  • 在二进制转换中,编译器如何区分int32之类的' C' (1111111111111111111111111111111110000000000000000000000000000000,根据unicode to binary table和整数67(也是rune,根据我使用的binary to decimal转换器..Intuition告诉我,某些位必须是保留给那些信息。哪些?

我已经做了相当多的谷歌搜索,但我显然错过了解释这一点的资源,所以请随意解释,比如我是5.请随时纠正术语误用。

0 个答案:

没有答案