【问题标题】:Can SQLite output a packed integer?SQLite 可以输出压缩整数吗?
【发布时间】:2016-05-22 00:43:52
【问题描述】:

有没有办法让 SQLite 以打包/二进制格式输出无符号整数?

我希望 SQLite 产生相当于 perl 函数“print pack('I', 1_234_567_890)”,其中每个整数(小于 2^32)都使用 4 个字节输出(嗯,在我的 linux 上)英特尔硬件上的盒子;我知道这些东西因硬件和字节序而异。)

是否有一些 printf 格式化魔法可以让我得到我正在寻找的东西?

【问题讨论】:

    标签: perl sqlite


    【解决方案1】:

    大端,32 位值 (l>):

    char( (N >> 24) & 255, (N >> 16) & 255, (N >> 8) & 255, N & 255 )
    

    小端,32 位值 (l<):

    char( N & 255, (N >> 8) & 255, (N >> 16) & 255, (N >> 24) & 255 )
    

    【讨论】:

    • 小端版本对我有用。谢谢!给其他读者的一个提示是,这似乎只适用于更新版本的 SQLite。 Ubuntu 14.04 (Trusty) 存储库(版本 3.8.2 2013-12-06 14:53:30)中的默认 SQLite 版本不支持十六进制文字。 Ubuntu 16.04 (Xenial) 存储库(版本 3.11.0 2016-02-15 17:29:24)中的默认 SQLite 版本确实支持十六进制文字
    • 它们都有效;如前所述,他们只是做不同的事情。 /// 0xFF 是 255。更新了答案。
    猜你喜欢
    • 2019-03-27
    • 1970-01-01
    • 1970-01-01
    • 2011-09-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多