文本,字符串,十进制,十六进制格式读写或发送的区别

所谓的 文本,十六进制,ascall码读写,串口或网络发送数据 有区别吗??
假设这个数是10,表现形式如下:

二进制 00001010
十进制 10
十六进制 0x0A
字符串: "10"

使用网络的api sendto 或串口发送时,收到的是啥,发送时怎么发送的?
在计算机里,字符,十进制是不需要使用者转换成十六进制的,计算机自动转成十六进制,按二进制的0,1一位一位发送出去或接受的。

定义一个变量

char buf = 00001010   //应用层是不能这样写的,会把它当十进制数,只能写成十六进制0x0a
或 buf = 10;
或buf = 0x0A;
或buf = '10'
使用网络的套接字send(fd, (const SX_S8 *)&buf, length, block),发送出去,
使用网络的套接字ret =recv(fd, (const SX_S8 *)&buf, len, block);接收
C语言里使用printf(" recvbuf %d ",buf),以%d十进制,就显示10printf(" recvbuf %x ",buf),以%x十六进制显示,就显示0x0aprintf(" recvbuf %c ",buf)%c字符制显示,就显示10

当然,如果发送的是’10’字符,十六进制显示就是0x40,以%d十进制,就显示10,发送时,计算机会自动对照ascall码表,将字符,或十进制,最终计算机都是自动转换成十六进制的数,按一个字节8位,发出去的,接收端收到的都是十六进制数,接收端收到是0x0A,
看什么格式打印。

在接收端,计算机应用层只有,char ,int,long,float,double数据类型
如果要发送一段数据: 文本或字符串"123abc" ,或一段结构体的十六进制或十进制数。

strcut data
{
   
	int    data1;
	char data2;
	char data3;
	char data4[10];
	char buf[10];
}

                
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值