当前位置: 首页 > 知识库问答 >
问题:

小端和大端的困惑

锺离马鲁
2023-03-14

我正在读一篇文章,这篇文章解释了小端和大端的区别。我理解大端先存储数据“大端”,小端先存储数据“小端”。我的困惑是在以下的文本块:

大端机器:我认为短的是两个字节,所以我将它们读出:位置s是地址0(W,或0x12),位置s 1是地址1(X,或0x34)。因为第一个字节是最大的(我是big-endian!),所以数字必须是256*byte 0 byte 1,或256*W X,或0x1234。我将第一个字节乘以256(2^8),因为我需要将它移位到8位。

我不明白他们为什么做了8位的移位。还有一段文字我不明白:

在big endian机器上,我们看到:

字节:U N I X位置:0 1 2 3

这是有道理的。U是"UN"中最大的字节,首先存储。该

在一台小小的endian机器上,我们会看到:

字节:N U X I位置:0 1 2 3

如果我的理解是正确的,在一台小小的endian机器上不是“INUX”吗?全文载于https://betterexplained.com/articles/understanding-big-and-little-endian-byte-order/.

如果有人能澄清这一点,那就太好了。

共有1个答案

谯志诚
2023-03-14

好吧,我现在明白了大恩迪安和小恩迪安的工作原理:

我将讨论我在理解第二段文本时遇到的问题。基本上,在这篇文章中,作者指出,如果我们将单词“UNIX”存储为两个(而不是),那么最终的结果将是“NUXI”现在,我将讨论我理解第一段文本的问题。基本上,进行位移位是为了切换内存中字节的排列,以便在大端字节的情况下,最高有效字节位于第一位,而在小端字节的情况下,最低有效字节位于第一位。

 类似资料:
  • 本文向大家介绍请问什么是大端小端以及如何判断大端小端相关面试题,主要包含被问及请问什么是大端小端以及如何判断大端小端时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 大端是指低字节存储在高地址;小端存储是指低字节存储在低地址。我们可以根据联合体来判断该系统是大端还是小端。因为联合体变量总是从低地址存储。

  • 问题 你需要知道当前终端的大小以便正确的格式化输出。 解决方案 使用 os.get_terminal_size() 函数来做到这一点。 代码示例: >>> import os >>> sz = os.get_terminal_size() >>> sz os.terminal_size(columns=80, lines=24) >>> sz.columns 80 >>> sz.lines 24

  • 我用这样的JAVA_OPTS启动了 jvm: 过了一段时间,当我查看GC日志时:

  • 使用SockJS java客户机,我试图连接到Spring SockJS服务器,但对于大约20KB的消息(没有标头),错误为1009。Javascript库工作正常。 还必须将Java SockJS客户端配置为接收更大的消息。 或者,服务器上的配置仍然错误。 如何在Java SockJS Spring客户机上增加缓冲区大小?

  • 问题内容: 如何使用Golang获得tty大小?我正在尝试通过执行命令来执行此操作,但是我无法正确编写代码。 输出: 我认为这是因为Go产生了一个与当前tty无关的进程,该进程正在使用该进程。如何将命令与当前终端相关联以获取其大小? 问题答案: 如果您给子进程授予对父进程的访问权限,则它可以工作: 产量:

  • 问题内容: 我正在使用Spring Boot应用程序开发应用程序服务器,但是现在我想知道Spring中默认的最大(客户端请求)线程池大小是多少,如何定制该值? 问题答案: 本文向大家介绍Spring的最大(客户端请求)线程池大小相关面试题,主要包含被问及Spring的最大(客户端请求)线程池大小时的应答技巧和注意事项,需要的朋友参考一下 假设您使用的是嵌入式,使用该属性来控制客户端请求线程池的大小