首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >c#如何将long转换为单个字节

c#如何将long转换为单个字节
EN

Stack Overflow用户
提问于 2022-03-12 12:42:51
回答 1查看 41关注 0票数 0

我试图将c#函数重写为python。现在我来到了一条看起来像这样的线:

代码语言:javascript
复制
timeArray[i - 1] = (byte)timestamp;

显然,它只是解析变量“时间戳”,即长度为10到一个字节的长。但是,这是如何工作的,我如何在蟒蛇中复制它呢?作为参考,这里是c#代码的完整版本:

代码语言:javascript
复制
var timestamp = long.Parse("1647079653");
var timeArray = new byte[8];
timestamp /= 30L;
for (var i = 8; i > 0; i--)
{
    timeArray[i - 1] = (byte)timestamp;
    timestamp >>= 8;
}

这将返回0、0、0、0、3、69、191、127的数组。

当我在python中(使用内置的字节-函数)时,我得到数组的每个索引的疯狂数字,尽管时间戳的初始值是正确的(像6-7位数字),有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2022-03-12 12:57:03

好吧我想明白了。它只需要对应二进制的最后8位,这就是字节。工作的python代码:

代码语言:javascript
复制
    for i in range(8,0,-1):
        num = str(bin(int(timestamp)))
        timeArray[i-1] = int(num[len(num)-8:],2)
        timestamp = int(timestamp)
        timestamp >>= 8
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71449797

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档