判断大小端的三种方法,大小端怎么测试
关于上一篇文章中如何判断端部的大小,我先给大家讲解一下如何判断端部的大小,然后再用画图的形式给大家讲解一下:
红色箭头指向的地方,就是我们输入的值。他的值从高地址到低地址存储。较低的小端存储高地址到高地址,但在计算机内存中,地址是从高到低的。所以我们可以看到图中的小部分是44 33 22 11,而大端存储的是11 22 33 44。我们可以看到vs的右边监控窗口,他的内存存储是44 33。
可以看到大小尾其实就是字节在内存中存储的顺序。接下来我来解释一下如何判断大小端。
因为要判断文字是大是小,这里有两种方法。
第一种
因为我们要读取一个字节,所以我们读取的是地址高的字节。其实0x00 00 00 01就是0x00 01,只是01之前写的0被忽略了,我们可以判断一下。因为读取的第一个字节是地址高的字节,所以我们可以通过图中的代码来判断。
我们可以看到,在vs中,我们的字节存储顺序是小端存储,那么如何用函数的形式表示呢?
大家看,这就是函数法表达的大小判断。
但是可以进一步简化:
我们直接把A的地址转换成char*类型,然后解引用,这就是我们要得到的数。这样不是更快吗?好了,第一个方法完成了。下面是第二种方法。
第二,不知道大家有没有学过共体(联合体)。如果你已经学会了这个,你可以更进一步,因为这里是如何用共体判断大端小端,先给大家放代码;
因为是社区,所以同时使用了一个内存空间,也就是如果我给char c赋值,我int a的值也会变化。如果我给int a赋值,我的char c也会变,所以我们财团一般一次用一个。让我给你画个图表:
我之前说过,它们使用相同的内存,所以如果我从内部打印出char c,它就是
从返回值可以看出是大头。如果是大端,那么我们应该返回0,小端应该返回1,那么我们来看下面的打印。
好了,这是小型存储,本课程到此结束。如果有不完整的地方,可以私信给我,我会尽力完善。
谢谢大家!
,
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。