首页 > 代码库 > 整型数据的二进制格式和文本格式的传输方式
整型数据的二进制格式和文本格式的传输方式
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 = http://www.mamicode.com/*(int*)buf2;>
流可以分为两种类型:文本流(ASCII)和二进制流。文本流是解释性的,最长可达255个字符,其中回车/换行将被转换为换行符“\n”,反之亦然。二进制流是非解释性的,一次处理一个字符,并且不转换字符。
通常,文本流用来读写标准的文本文件,或者将字符输出到屏幕或打印机,或者接受键盘的输入;而二进制流用来读写二进制文件(例如图形或字处理文档),或者读取鼠标输入,或者读写调制解调器。
整型数据的二进制格式和文本格式的传输方式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。