整型数据的二进制格式和文本格式的传输方式

本文探讨了整型数据在跨平台传输时,如何使用二进制和文本方式写入及读取缓冲区。考虑到网络传输通常采用大端模式,而本地可能是小端模式,需要进行字节序判断。二进制流作为非解释性方式,处理原始数据不受字符转换影响,适合处理二进制文件,而文本流则适用于处理ASCII文本,会进行回车/换行转换。
摘要由CSDN通过智能技术生成


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 |
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值