You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

BigQuery中如何将二进制字符串转换为int64类型整数

二进制字符串转int64整数实现方案

本方案针对16位以内二进制字符串转十进制int64整数的需求开发,转换效果完全等价于JavaScript代码parseInt(binary_str, 2),以下是不同常用场景的具体实现:

验证基准

转换结果需匹配以下示例标准:

binary_string (string)integer (int64)
'1011011100111000'46904
'1111111111101011'65515
'0111111001001010'32330

注:16位无符号二进制最大值为65535,远低于int64数值上限,转换过程无溢出风险,不需要额外处理符号位。

1. Python 原生实现

直接调用int类的进制转换参数即可完成单值转换:

binary_str = '0111111001001010'
result = int(binary_str, 2)
# 输出结果为32330,符合预期

2. Pandas 数据表批量转换

如果是处理Pandas DataFrame的整列数据,通过apply方法批量调用转换逻辑:

import pandas as pd

# 示例数据表构造
df = pd.DataFrame({
    'binary_string': ['1011011100111000', '1111111111101011', '0111111001001010']
})

# 生成转换后的int64类型新列
df['integer'] = df['binary_string'].apply(lambda x: int(x, 2)).astype('int64')

3. SQL 场景实现

不同数据库语法略有差异:

  • MySQL/MariaDB:使用CONV函数完成进制转换后强转类型
    SELECT CAST(CONV(binary_string, 2, 10) AS SIGNED) AS integer FROM 表名;
    
  • PostgreSQL:通过bit类型中转实现转换
    SELECT CAST(('B' || quote_literal(binary_string)) AS BIT(16))::integer AS integer FROM 表名;
    
  • Hive/Spark SQL:使用内置conv函数转换后强转为BIGINT(对应int64)
    SELECT CAST(conv(binary_string, 2, 10) AS BIGINT) AS integer FROM 表名;
    

内容的提问来源于stack exchange,提问作者Jorgeblom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 16:06:08