整型数据的二进制格式和文本格式的传输方式
来源:互联网 发布:手动添加网络ssid 编辑:程序博客网 时间:2024/05/16 17:50
1.将1个整型数据输入一个缓冲区char *buffer,实现跨平台传输,以二进制方式和文本方式分别实现写缓冲区和读缓冲区
---->在网络中传输是大端模式,而在本机上可能是小端模式,这个需要先判断
#include <stdio.h>#include <stdlib.h>#include <string.h>char buf1[1024];char buf2[1024];int ascii_write_to(int);int binary_write_to(int);int binary_read_from();int ascii_read_from();int main(int argc, const char *argv[]){ int a = 0x12345678; binary_write_to(a); ascii_write_to(a); printf("%x %x\n", binary_read_from(), ascii_read_from()); return 0;}int ascii_write_to(int data){ sprintf(buf1, "%d", data); return data;}int binary_write_to(int data){ short int x = 0x0001; char *p = (char*)&x; if(*p)//小端模式 { int tmp = (data >> 24)&0xff | \ (data >> 8)&0xff00 | \ (data << 8)&0xff0000 | \ (data << 24)&0xff000000; *(int*)buf2 = tmp; } else //大端模式 memcpy(buf2, &data, sizeof(data)); return data;}int ascii_read_from(){ int tmp; sscanf(buf1, "%d", &tmp); return tmp;}int binary_read_from() { int data = *(int*)buf2; unsigned short a = 0x0001; char *p = &a; if(!(*p)) { int tmp = data;//大端机 } else//小端机 { int tmp = (data >> 24)&0xff | \ (data >> 8)&0xff00 | \ (data << 8)&0xff0000 | \ (data << 24)&0xff000000; } return tmp;}
流可以分为两种类型:文本流(ASCII)和二进制流。文本流是解释性的,最长可达255个字符,其中回车/换行将被转换为换行符“\n”,反之亦然。二进制流是非解释性的,一次处理一个字符,并且不转换字符。
通常,文本流用来读写标准的文本文件,或者将字符输出到屏幕或打印机,或者接受键盘的输入;而二进制流用来读写二进制文件(例如图形或字处理文档),或者读取鼠标输入,或者读写调制解调器。
0 0
- 整型数据的二进制格式和文本格式的传输方式
- 打印整型的二进制格式
- java打印整型的二进制格式
- 文件读写: 二进制方式和文本方式的区别
- 文件读写: 二进制方式和文本方式的区别
- 文件读写: 二进制方式和文本方式的区别
- 文件读写: 二进制方式和文本方式的区别
- 文件读写: 二进制方式和文本方式的区别
- 文件读写: 二进制方式和文本方式的区别
- PostgreSQL中copy命令以二进制形式传输数据的二进制格式
- 二进制和文本方式打开文件的区别
- 以二进制和文本的方式读写文件
- 利用bitset处理二进制格式的数据
- xmpp的传输格式
- 关于Authorware和文本格式
- 文件读写:fwrite与fprintf的区别(即二进制方式和文本方式的区别)
- 文件读写:fwrite与fprintf的区别(即二进制方式和文本方式的区别)
- 文件读写:fwrite与fprintf的区别(即二进制方式和文本方式的区别)
- MyEsclipse 8.5 破解方法
- 全国省市列表SQL执行语句
- vmWare虚拟机下ubuntu配置代理上网
- 刚才你们为老师锤的这几下背
- MSHFlexGrid控件自动调整列宽应用
- 整型数据的二进制格式和文本格式的传输方式
- 黑马程序员——Java语言基础
- 你也知道我不容易相信别人和与别人交心
- 高桥和低桥
- 【Effective C++学习笔记】Item5-Item12
- Spring3+Hibernate4 配置多个数据源的方法
- 我觉得我努力画画终于有了意义
- 这机器人的面部肌肉抽搐了一下
- 在GitHub上分享和展示你的代码