【c/c++笔记】高字节和低字节 动态语言和静态语言等
2013-07-01 11:36
239 查看
一)字节序,顾名思义字节的顺序,再多说两句就是大于一个字节类型的数据在内存中的存放顺序(一个字节的数据当然就无需谈顺序的问题了)。其实大部分人在实际的开发中都很少会直接和字节序打交道。唯有在跨平台以及网络程序中字节序才是一个应该被考虑的问题。
在所有的介绍字节序的文章中都会提到字节序分为两类:Big-Endian和Little-Endian,引用标准的Big-Endian和Little-Endian的定义如下:
a) Little-Endian就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。
b) Big-Endian就是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。
c) 网络字节序:TCP/IP各层协议将字节序定义为Big-Endian,因此TCP/IP协议中使用的字节序通常称之为网络字节序。
直接上代码:
int a = 0x05060708;
char *ch = (char *)&a;
printf("%d,%d,%d,%d", *(ch + 3), *(ch
+ 2), *(ch + 1), *ch);
在vs上编译输出是:5,6,7,8
看到高位字节排在高地址端,表明是低字节序。
二)关于char强制转化为 unsigned char。
如果char是负数,在c++中是合法的,其结果是该负数对该类型的取值个数求模后的值。
如果把-1赋值给8位的unsigned char,结果是255.
三) 动态语言和静态语言:
强类型语言(静态类型语言)是指需要进行变量/对象类型声明的语言,一般情况下需要编译执行。例如C/C++/Java/C#
弱类型语言(动态类型语言)是指不需要进行变量/对象类型声明的语言,一般情况下不需要编译(但也有编译型的)。例如PHP/ASP/Ruby/Python/Perl/ABAP/SQL/JavaScript/Unix Shell等等。
在所有的介绍字节序的文章中都会提到字节序分为两类:Big-Endian和Little-Endian,引用标准的Big-Endian和Little-Endian的定义如下:
a) Little-Endian就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。
b) Big-Endian就是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。
c) 网络字节序:TCP/IP各层协议将字节序定义为Big-Endian,因此TCP/IP协议中使用的字节序通常称之为网络字节序。
直接上代码:
int a = 0x05060708;
char *ch = (char *)&a;
printf("%d,%d,%d,%d", *(ch + 3), *(ch
+ 2), *(ch + 1), *ch);
在vs上编译输出是:5,6,7,8
看到高位字节排在高地址端,表明是低字节序。
二)关于char强制转化为 unsigned char。
如果char是负数,在c++中是合法的,其结果是该负数对该类型的取值个数求模后的值。
如果把-1赋值给8位的unsigned char,结果是255.
三) 动态语言和静态语言:
强类型语言(静态类型语言)是指需要进行变量/对象类型声明的语言,一般情况下需要编译执行。例如C/C++/Java/C#
弱类型语言(动态类型语言)是指不需要进行变量/对象类型声明的语言,一般情况下不需要编译(但也有编译型的)。例如PHP/ASP/Ruby/Python/Perl/ABAP/SQL/JavaScript/Unix Shell等等。
相关文章推荐
- c++的静态多态和动态多态(笔记)
- C++MFC编程笔记day04 运行时类信息和窗口的动态、静态切分
- 强弱类型,动态静态语言比较(JAVA,C,C++,Python,Ruby,PHP,Perl)
- C++研究笔记(1)动态类型和静态类型
- 关于静态绑定与动态绑定的辨别笔记----C++学习之路
- 动态语言、静态语言 比较
- 深入理解C++的动态绑定和静态绑定
- 关于C/C++语言中字节对齐(alignmen…
- 静态语言和动态语言、强类型和弱类型
- C++与C语言动态存储分配的区别
- <@乌龟:>C++/CLI语言Specification阅读笔记(2)
- 编译型与解释型、动态语言与静态语言、强类型语言与弱类型语言的区别
- .net 4.0 学习笔记(1)—— C#4.0语言和动态运行时的改进
- Effective c++ 学习笔记之条款一视C++为一个语言联邦
- 编译型与解释型、动态语言与静态语言、强类型语言与弱类型语言的区别
- Linux下C/C++语言的调试 gdb工具 笔记
- C# 中静态调用C++动态链接
- C++动态类型与静态类型
- C++学习笔记【第二部分第十二章:动态内存】
- C++基础学习笔记----第十一课(类的静态成员、对象模型初步认识)