linux转换宏文件需要使用什么命令

linux转换宏文件需要使用什么命令,第1张

chown-R用户名目录名/文件名。根据查询相关信息显示,linux转换宏文件需要使用chown-R用户名目录名/文件名命令,-R参数是递归更改目录下所有文件的用户属性,根据是否有需要选择添加或者不添加。Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX *** 作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的 *** 作系统。

实现同样的功能,我们来看看Linux *** 作系统中相关的源代码是怎么做的:

static union { char c[4]unsigned long mylong} endian_test = {{ 'l', '?', '?', 'b' } }

#define ENDIANNESS ((char)endian_test.mylong)

Linux 的内核作者们仅仅用一个union 变量和一个简单的宏定义就实现了一大段代码同样的功能!由以上一段代码我们可以深刻领会到Linux 源代码的精妙之处!(如果ENDIANNESS=’l’表示系统为little endian,

为’b’表示big endian )

http://blog.chinaunix.net/uid-25367385-id-188322.html

例如一个16bit的short型x,在内存中的地址为0x0010,x的值为0x1122,那么0x11为高字节,0x22为低字节。对于大端模式,就将0x11放在低地址中,即0x0010中;0x22放在高地址中,即0x0011中。小端模式,刚好相反

一个判断当前系统是大端还是小端的函数,小端则返回1:

以上函数,若在小端系统下,其字节序为,b[0]中存储00000001,后三个字节依次存储00000000,大端系统下反之

在iOS开发中,苹果已经为我们定义好了一套用于大小端转换的宏定义:

NTOHL,network to host,L、S、LL分别对应long、short、long long

HTONL,反之

大小端转换原理如下:

假设一个short类型的数字:0x1122,那么其二进制形式为:00010001 00100010

首先,取出第一个字节,右移八位:

然后,取出第二个字节,左移八位:

最后,按位或,至此,大小端转换完成:


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/yw/7679784.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-08
下一篇2023-04-08

发表评论

登录后才能评论

评论列表(0条)

    保存