Little_endian和Big_endian的区别和C测试程序

简介: 这里简单的进行描述一下也加深记忆 Little_endian:不管在内存和磁盘中存储都是内存的低地址存储数值的低位数 Big_endian:不管在内存和磁盘中存储都是内存的低址存储数值的高位数 注意这里是数值,字符串没有这样的问题。
这里简单的进行描述一下也加深记忆
Little_endian:不管在内存和磁盘中存储都是内存的低地址存储数值的低位数
Big_endian:不管在内存和磁盘中存储都是内存的低址存储数值的高位数

注意这里是数值,字符串没有这样的问题。
比如626C 低位数就是6C高位数就是62

比如我们要存储
0x626c

内存地址
低---------------->高 
Little_endian
6C  62
Big_endian
62  6C


我们用如下的程序进行验证

点击(此处)折叠或打开

  1. #include<iostream>
  2. #include <string.h>
  3. #include<stdlib.h>
  4. #include<stdio.h>
  5. using namespace std;

  6. bool check(void)
  7. {
  8.         char* test = new char[2];
  9.         strcpy(test,"lb");
  10.         short *m=(short *)test;


  11.         printf("%s is test srting %c's ascii is %x,%c's ascii is %x\n",test,test[0],test[0],test[1],test[1]);
  12.         printf("short number is %x\n",*m);


  13.         if(*m == 0x626c)
  14.         {
  15.                 return false;
  16.         }
  17.         else if(*m == 0x6c62)
  18.         {
  19.                 return true;
  20.         }
  21.         else
  22.         {
  23.                 printf("UNKOWN ERROR!\n");
  24.                 exit(1);
  25.         }
  26.         delete [] test; 
  27. }


  28. int main(void)
  29. {
  30.         if(check())
  31.         {
  32.                 printf("Big_endian\n");
  33.         }
  34.         printf("Little_endian\n");
  35. return 0;
  36. }


输出为:
lb is test srting l's ascii is 6c,b's ascii is 62
short number is 626c
Little_endian
我是LINUX下面跑的,用WINDOWS跑也是一样的。
LINUX和WINDOWS都是Little_endian,占时没在AIX这样的Big_endian测试


我们可以到我们的字符串输出任然是lb,l 的ascii是 6c,b的ascii是 62 ,但是当转换为数字short int后
显示为626c,那么我们可以确认他为小端Little_endian。

可以参考
http://blog.163.com/yuyi_vc/blog/static/170371753201182511825105/
相关文章
|
11天前
|
算法 Java 测试技术
Benchmark.NET:让 C# 测试程序性能变得既酷又简单
Benchmark.NET是一款专为 .NET 平台设计的性能基准测试框架,它可以帮助你测量代码的执行时间、内存使用情况等性能指标。它就像是你代码的 "健身教练",帮助你找到瓶颈,优化性能,让你的应用跑得更快、更稳!希望这个小教程能让你在追求高性能的路上越走越远,享受编程带来的无限乐趣!
58 13
|
18天前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
47 1
|
2月前
|
测试技术 网络安全
什么是软件测试? 软件测试都有什么岗位 ?软件测试和调试的区别? 软件测试和开发的区别? 一位优秀的测试人员应该具备哪些素质? 软件测试等相关概念入门篇
文章全面介绍了软件测试的基本概念、目的、岗位分类、与开发和调试的区别,并阐述了成为优秀测试人员应具备的素质和技能。
258 1
什么是软件测试? 软件测试都有什么岗位 ?软件测试和调试的区别? 软件测试和开发的区别? 一位优秀的测试人员应该具备哪些素质? 软件测试等相关概念入门篇
|
2月前
|
人工智能 前端开发
大模型体验体验报告:OpenAI-O1内置思维链和多个llm组合出的COT有啥区别?传统道家理论+中学生物理奥赛题测试,名不虚传还是名副其实?
一个月前,o1发布时,虽然让人提前体验,但自己并未进行测试。近期终于有机会使用,却仍忘记第一时间测试。本文通过两个测试案例展示了o1的强大能力:一是关于丹田及练气的详细解答,二是解决一道复杂的中学生物理奥赛题。o1的知识面广泛、推理迅速,令人印象深刻。未来,或许可以通过赋予o1更多能力,使其在更多领域发挥作用。如果你有好的测试题,欢迎留言,一起探索o1的潜力。
|
2月前
|
存储 测试技术 数据库
数据驱动测试和关键词驱动测试的区别
数据驱动测试 数据驱动测试或 DDT 也被称为参数化测试。
35 1
|
2月前
|
安全 Linux 网络安全
Kali渗透测试:远程控制程序基础
Kali渗透测试:远程控制程序基础
40 0
Kali渗透测试:远程控制程序基础
|
3月前
|
存储 算法 测试技术
面向对象测试和传统测试的区别
面向对象测试和传统测试的区别
78 9
|
2月前
|
安全 Java Linux
Kali渗透测试:通过Web应用程序实现远程控制
Kali渗透测试:通过Web应用程序实现远程控制
49 0
|
4月前
|
运维 测试技术
测试与开发问题之测试开发工程师与软件开发工程师和测试工程师如何区别
测试与开发问题之测试开发工程师与软件开发工程师和测试工程师如何区别
|
4月前
|
安全 测试技术 网络安全