判断PC机大小端

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3
 4 int main()
 5 {
 6     short a = 0x0102;
 7     char *p = (char*)(&a);
 8
 9     //低字节存储在低地址
10     if(*p == 2 && *(p + 1) == 1)
11         printf("小端\n");
12
13     //高字节存储在低地址
14     else if(*p == 1 && *(p + 1) == 2)
15         printf("大端\n");
16
17     return 0;
18 }
时间: 2024-10-21 05:37:17

判断PC机大小端的相关文章

判断机器的大小端模式

大小端模式: 大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放:这和我们的阅读习惯一致. 小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低. 下面以unsigned int value = 0x12345678为例,分别看看在两种字节序下其存储情况,我们

MVC下判断PC和移动端

MVC下的PC端和移动端,其实没区别,写法都一样,只是有两点才改变了它们 第一点:就是单击这个页面任何地方的时候判断是移动端还是客户端: 第二点:新建手机端区域Areas(简单来说:Areas就相当于小的一个运行机制也有控制器-视图-和路由地址),Moble(手机端存放的地方) :MVC运行的机制简单来说就是- 控制器-主页面-是否模板页-返回单击的页面 :关键点就在这个模板页里面(_layout)以及自带的js, :当我们运行到了(_layout)这里的时候就要判断是否为PC还是手机端,别问我

JS判断PC还是移动端打开网页

最近在做移动端网站,也需兼容PC端.还没找到更好的方法,只能用javascr判断用户是在PC端打开还是移动端打开. JS判断 var isPC = function (){    var userAgentInfo = navigator.userAgent.toLowerCase();    var Agents = new Array("android", "iphone", "symbianOS", "windows phone&

node-express根据请求,判断PC和移动端

function getMachine(req) { var deviceAgent = req.headers["user-agent"].toLowerCase(); var agentID = deviceAgent.match(/(iphone|ipod|ipad|android)/); if (agentID) { return "Mobile"; } else { return "PC"; } } router.get("/

判断PC和移动端 判断移动端系统

var browser = { versions: function() { var u = navigator.userAgent, app = navigator.appVersion; return {//移动终端浏览器版本信息 trident: u.indexOf('Trident') > -1, //IE内核 presto: u.indexOf('Presto') > -1, //opera内核 webKit: u.indexOf('AppleWebKit') > -1, //

大小端模式与网络字节序

一.为什么会出现大小端模式? 不同的cpu采用的大小端模式不一致.X86是小端模式.而KEIL C51则为大端模式.很多的ARM,DSP都为小端模式.有些ARM处理器还可以由硬件来选择是大端模式还是小端模式. 二.大小端模式的不同带来的问题是什么?如何解决? 如果存在数据网络传输,如果大小端模式不一致,如果不经过转换,必然会导致数据不致,出现错误. 解决方法:统一将网络上传输的字节序采用同一种模式(大家都知道的),这样收发数据时,就会根据主机对应的模式是否和网络字节对应的模式一致,来判断是否需要

htons、htonl与字节序大小端

判断字节序大小端code #include <stdio.h> int main() { if (htons(1) == 1) printf("big endian\n"); else printf("little endian\n"); return 0; } int main() { printf("0x%x\n", htons(0x9225)); printf("0x%x\n", htonl(0x9225))

CPU的大小端及如果判断

不同体系结构的CPU,数据在内存中存放的排列顺序是不一样的. 存储器中对数据的存储是以字节(Byte)为基本单位的,因此,字(Word)和半字(Half-Word)在存储器中就有两种次序,分别称为:大端模式(Big Endian)和小端模式(Little Endian). 大端存储模式是指字或半字的最高字节(Most Significant Bit,MSB)存放在内存的最低位字节地址上,而字数据的低字节则存放在高地址中.打个比方,有一个字为0×12345678,这个字由4个字节组成, 从高位到低

Linux中判断大小端的一种方法

大小端的定义无需赘言,常用的方法有使用联合体和指针法,如: int checkCPU() { union w { int a; char b; }c; c.a = 1; return (c.b == 1); // 小端返回TRUE,大端返回FALSE } 实际上Linux操作系统的源码中,其判断更为简洁: static union { char c[4]; unsigned long mylong; } endian_test = {{ 'l', '?', '?', 'b' } }; #defi