一个进制转换的小脚本#!/usr/bin/bashif [ $1 == "--help" -o $1 == "-h" ]; then echo "usage: OBASE; IBASE; NUMBER"else echo "obase=$1; ibase=$2; $3" | bcfi上面这个脚本, ...
分类:
其他好文 时间:
2014-11-08 22:01:13
阅读次数:
349
socket 大端 小端 转换 (转)《二》http://blog.csdn.net/kukumouse/article/details/2270356(1)对于位域结构中的变量来说,其长度不能跨越字节,也就是说不能超过8位。当然如果设置空白位(无名变量,仅仅用作占位的)是没有这个限制的。如果一个字...
分类:
其他好文 时间:
2014-11-06 12:26:08
阅读次数:
287
通常的技巧是使用一个指针: int x = 1; if(*(char *)&x == 1) printf("little-endian\n"); else printf("big-endian\n");或者一个union: union { int i; char c[si...
分类:
其他好文 时间:
2014-11-06 12:17:24
阅读次数:
693
对与多字节数据,不同的CPU有不同的组织方式,并且对于单字节序内部的多个位域字段,和多字节数据一样也存在不同的组织方式.
一. 大端字节序
将数据高有效位存在低内存地址中,而数据低有效位存放在高内存地址中.
网络字节序采用大端字节序.
解析: 数据部分: 0A,17,0E,06这样的顺序从高位都地位排列. 到了内存地址中, 高...
分类:
其他好文 时间:
2014-10-30 11:41:46
阅读次数:
141
对于不同的机器,一此格式化输出的函数常常会得不到正确的输出,比如小端上的程序在大端上运行等,另外,在日常程序开发时,也会经常被这样的小问题而困扰很久,最终发现是她的问题,不免有点叹息,下面对printf/wprintf/CString.Format等相关函数所使用的格式化输出的语法作一总结,有些是从官方资料摘过来的,还是英文的。
函数中格式化声明的一般格式为:
%[flags] ...
分类:
编程语言 时间:
2014-10-28 12:12:14
阅读次数:
276
#include
#include
#if 0
bool isBigEndian(void)
{
int var = 0x12345678;
char *p = (char *)&var;
return *p == 0x12;
}
#endif
#if 0
bool isLittleEndian(void)
{
int var ...
分类:
其他好文 时间:
2014-10-23 22:49:16
阅读次数:
167
问题:请写一个C函数,若处理器Big_endian的,则返回0;若是Little_endian的,则返回1。简单复习下大小端的概念:大端模式(Big_endian):字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中。小端模式(Little_endian):字数据的高字节存储在高地址中,而字数..
分类:
编程语言 时间:
2014-10-21 02:23:42
阅读次数:
189
大端序和小端序
一般Intel处理器或者X86平台都是小端序 ,只有老一点的摩托罗拉处理器会用大端序,所以重点掌握一下小端序。
小端序一般指低地址存低字节,高地址存高字节。。。简称 “低低高高”
举个C语言的例子:
#include
union u
{
int i;
char j[2];
}a;
void main()
{
a.j[...
分类:
其他好文 时间:
2014-10-16 21:25:33
阅读次数:
226
时间:2014.07.18地点:基地-----------------------------------------------------------------------------一、跨多字节对象 相应跨多字节的程序对象,有两个点:一是这个对象的地址是什么。二是在内存中,这多个字节是怎样存...
分类:
其他好文 时间:
2014-10-14 12:38:48
阅读次数:
197
一直以为自己对大端小端的区别已经掌握得很清楚了,没想到在实际应用中还是会犯糊涂,这里记录一下,同样的错误不能再犯了。uint32_t temp = 0x01020304;大端:&temp地址处存放的是高字节,即((uint8_t *)&temp)[0] = 0x01;小端:&temp地址处存放的是低...
分类:
其他好文 时间:
2014-10-11 20:27:16
阅读次数:
195