大胖的部落格
Just a note
C++博客
::
首页
::
新随笔
::
联系
::
聚合
::
管理
::
112 随笔 :: 0 文章 :: 3 评论 :: 0 Trackbacks
<
2009年11月
>
日
一
二
三
四
五
六
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
留言簿
给我留言
查看公开留言
查看私人留言
随笔分类
Algorithm(13)
(rss)
C#(13)
(rss)
C++(22)
(rss)
Design Pattern(23)
(rss)
Others(14)
(rss)
STL(9)
(rss)
Technical(2)
(rss)
UML(2)
(rss)
Win32(18)
(rss)
Reference
Windows XP command line
最新评论
1. re: 在TCL命令行中调用C函数
@Kenny
实在不好意思,时间太过久远,本人已好久没有接触TCL……
--大胖
2. re: 在TCL命令行中调用C函数
請問如何溝通array 變數
Q:1
tcl array in C
Q:2
C array in tcl
懇求指導
--Kenny
3. re: 在TCL命令行中调用C函数
谢谢!
--1232
Big Endian & Little Endian 和位域
big endian:最高字节在地址最低位,最低字节在地址最高位,依次排列。
little endian:最低字节在最低位,最高字节在最高位,反序排列。
如果我们将0x1234abcd写入到以0x0000开始的内存中,则结果为
big-endian little-endian
0x0000 0x12 0xcd
0x0001 0x34 0xab
0x0002 0xab 0x34
0x0003 0xcd 0x12
int
i
=
0x12345678
;
cout
<<
hex
<<
(
int
)
*
(
char
*
)
&
i
<<
endl;
//
78,因为i的地址是低字节0x78的地址
x86系列则采用little endian方式存储数据。
C/C++语言编写的程序里数据存储顺序是跟编译平台所在的CPU相关的,而JAVA编写的程序则唯一采用big endian方式来存储数据。
位域也采用了类似little endian的存储方式:
先定义的位域存放在该字节的低位。
#include
<
iostream
>
using
namespace
std;
union V
{
struct
X
{
unsigned
char
s1:
2
;
unsigned
char
s2:
3
;
unsigned
char
s3:
3
;
}
x;
unsigned
char
c;
}
v;
int
main()
{
v.c
=
44
;
//
001 011 00
cout
<<
(
int
)v.x.s1
<<
endl;
//
0
cout
<<
(
int
)v.x.s2
<<
endl;
//
3
cout
<<
(
int
)v.x.s3
<<
endl;
//
1
return
0
;
}
posted on 2009-06-12 09:24
大胖
阅读(282)
评论(0)
编辑
收藏
引用
所属分类:
Others
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
相关文章:
用C实现多态
printf
浮点数二进制表示
文件操作
字节对齐
函数调用方式
Big Endian & Little Endian 和位域
在TCL脚本中导入dll
在TCL命令行中调用C函数
Perl初学
网站导航:
博客园
IT新闻
BlogJava
博问
Chat2DB
管理
Powered by:
C++博客
Copyright © 大胖