啊涂涂 发表于 2019-7-6 14:04:57

小甲鱼那个大端和小端的文章是不是写错了

所谓的大端即低位字节排放在内存的低地址端,而高位字节排放在内存的高地址端。

小端则相反:高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。

这两句和百度百科上是反的

人造人 发表于 2019-7-6 14:44:40

百度百科?
贴出来我看看

人造人 发表于 2019-7-6 14:48:16

小端——数据尾端是低地址https://blog.csdn.net/youwotianya/article/details/80957551
小端:将低序的存在低地址https://blog.csdn.net/yxccc_914/article/details/55803055
小端模式(Little-endian):低位字节排放在内存的低地址端 https://blog.csdn.net/w614171629/article/details/82150292

我找了3个,都是一样的

迷雾少年 发表于 2019-7-6 15:47:14

大端:高字节放低地址
小端:底字节放高地址

人造人 发表于 2019-7-6 15:52:31

迷雾少年 发表于 2019-7-6 15:47
大端:高字节放低地址
小端:底字节放高地址

你确定吗?

迷雾少年 发表于 2019-7-6 16:30:51

本帖最后由 迷雾少年 于 2019-7-6 16:32 编辑

人造人 发表于 2019-7-6 15:52
你确定吗?

打错了,应该是

大端:高字节放低地址
小端:高字节放高地址

jackz007 发表于 2019-7-6 16:50:15

本帖最后由 jackz007 于 2019-7-6 16:55 编辑

    小端模式(little-endian)的低位字节放在低地址,高位字节放在高地址。例如,整型数 0x12345678 在内存中的存储顺序为 12 34 56 78;

    大端模式(big-endian)的低位字节放在高地址,高位字节放在低地址。例如,整型数 0x12345678 在内存中的存储顺序为 78 56 34 12;

    我们日常见到的基于 Intel 系列芯片架构的 PC ,采用的一律是大端(big-endian) 模式,与操作系统无关。

人造人 发表于 2019-7-6 17:52:19

jackz007 发表于 2019-7-6 16:50
小端模式(little-endian)的低位字节放在低地址,高位字节放在高地址。例如,整型数 0x12345678 在内 ...

我们日常见到的基于 Intel 系列芯片架构的 PC ,采用的一律是大端(big-endian) 模式,与操作系统无关。

我们日常见到的是小端,不是大端

jackz007 发表于 2019-7-6 18:11:34

人造人 发表于 2019-7-6 17:52
我们日常见到的是小端,不是大端

      确实搞错了,多谢指正。

啊涂涂 发表于 2019-7-6 20:22:07

人造人 发表于 2019-7-6 14:48
小端——数据尾端是低地址https://blog.csdn.net/youwotianya/article/details/80957551
小端:将低序的 ...

小甲鱼上说的小端是是 低位字节放在内存高地址端

你发的小端是 低位字节放在内存低地址端

这不是反着的嘛

人造人 发表于 2019-7-6 20:25:44

啊涂涂 发表于 2019-7-6 20:22
小甲鱼上说的小端是是 低位字节放在内存高地址端

你发的小端是 低位字节放在内存低地址端


发一下小甲鱼老师那个 小端 的链接

啊涂涂 发表于 2019-7-6 20:28:31

人造人 发表于 2019-7-6 20:25
发一下小甲鱼老师那个 小端 的链接

https://fishc.com.cn/forum.php?mod=viewthread&tid=75394&extra=page%3D1%26filter%3Dtypeid%26typeid%3D571

我现在迷糊了,12345678 哪边是高字节,哪边是低字节呢?按照咱们看数字的方法应该是 1234 高,5678 低吧?

啊涂涂 发表于 2019-7-6 20:33:43

jackz007 发表于 2019-7-6 16:50
小端模式(little-endian)的低位字节放在低地址,高位字节放在高地址。例如,整型数 0x12345678 在内 ...

你写错了吧兄弟,你去百度百科看下

人造人 发表于 2019-7-6 20:50:35

对,是小甲鱼老师的错
@小甲鱼

https://fishc.com.cn/forum.php?mod=viewthread&tid=75394&extra=page%3D1%26filter%3Dtypeid%26typeid%3D571

小脑斧 发表于 2019-7-7 09:02:49

人造人 发表于 2019-7-6 20:50
对,是小甲鱼老师的错
@小甲鱼



我刚看了视频,,,,,甲鱼哥是全部例子和概念都反了。。。。我要再去看看题改改笔记

小脑斧 发表于 2019-7-7 09:46:42

啊涂涂 发表于 2019-7-6 20:28
https://fishc.com.cn/forum.php?mod=viewthread&tid=75394&extra=page%3D1%26filter%3Dtypeid%26typeid% ...

我又去看了一下,我的理解,例如数据:123456.,12是高位字节,56那边是低位字节
内存地址:左边是低地址右边高地址

大端,高字节在内存低地址,12先存入低地址,接着继续
小端,低字节在内存低地址,56先存入低地址,接着继续
虽然小端看着顺序是反着的(肉眼看),但是由于字节的高低,是从左到右排的,所以字节和内存是一致的

甲鱼哥概念错了,不过按这样看甲鱼后面关于大小端的优劣势的举例我又懵了

啊涂涂 发表于 2019-7-7 09:48:29

小脑斧 发表于 2019-7-7 09:46
我又去看了一下,我的理解,例如数据:123456.,12是高位字节,56那边是低位字节
内存地址:左边是低地 ...

我也是越看越糊涂,只能等小甲鱼来解释了@小甲鱼

小脑斧 发表于 2019-7-7 09:55:57

啊涂涂 发表于 2019-7-7 09:48
我也是越看越糊涂,只能等小甲鱼来解释了@小甲鱼

还有那道例题,a,b结果是1,2,然而我的运行结果是0,2
小甲鱼的代码,你运行看看,我的dev和vs结果都是0,2
#include <stdio.h>

int main(void)
{
      char a = 0, b = 0;
      int *p = (int *)&b;

      *p = 258;

      printf("%d %d\n", a, b);

      return 0;
}

人造人 发表于 2019-7-7 14:44:58

小脑斧 发表于 2019-7-7 09:55
还有那道例题,a,b结果是1,2,然而我的运行结果是0,2
小甲鱼的代码,你运行看看,我的dev和vs结果都是 ...

要输出1, 2,前提是编译器把变量b放在变量a的前面,变量b低地址,变量a高地址,并且两个变量必须紧挨着存放,没有标准规定编译器必须这样做,所以这样的代码属于未定义行为,不同的编译器会有不同的结果,同一个编译器的不同编译选项很可能就会有不同的结果

小脑斧 发表于 2019-7-7 14:46:10

人造人 发表于 2019-7-7 14:44
要输出1, 2,前提是编译器把变量b放在变量a的前面,变量b低地址,变量a高地址,并且两个变量必须紧挨着 ...

好吧
页: [1] 2
查看完整版本: 小甲鱼那个大端和小端的文章是不是写错了