C中的int和Python是一回事吗?

2024-09-28 23:44:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要通过网络从C向Python发送一个整数,我突然想到,如果两种语言中的“规则”是相同的,并且它们的字节大小也相同,那么应该是缓冲区大小,我可以在Python中int(val)。。。我能吗?在

两者的大小都是32位的,所以在Python和C中我应该可以设置

C#:

String str = ((int)(RobotCommands.standstill | RobotCommands.turncenter)).ToString();
Stream stream = client.GetStream();

ASCIIEncoding asen = new ASCIIEncoding();
byte[] ba = asen.GetBytes(str);

stream.Write(ba, 0, 32);

Python:

^{pr2}$

Tags: 网络语言streamstring字节规则整数val
1条回答
网友
1楼 · 发布于 2024-09-28 23:44:49
data = int( conn.recv(32) );
  1. 那是32字节而不是32位
  2. 这是一个最大值,你可能得到的比你要求的要少
  3. int(string)做类似int('42') == 42和{}的事情。也就是说,它将一个人类可读的数字转换成一个整数,但这不是你要处理的问题。在

你想做这样的事吗

^{pr2}$

编辑

看起来您在C代码中发送的数据也不正确。我不懂C,所以我不能告诉你如何正确地做。任何人,都可以在更正中自由编辑。在

相关问题 更多 >