如何获取Int并将其转换为16位二进制格式?
将整数转换为16位二进制格式(字符串/数字数组)
生成16位二进制字符串
核心思路是利用格式化工具将整数转为二进制字符串,并强制补前导零至16位。如果需要处理负数,先将其转换为无符号16位整数(对65536取模,即2^16)再处理。
以Python为例:
def int_to_16bit_str(num): # 处理负数,转换为无符号16位整数 unsigned_num = num % 65536 # 格式化为16位二进制字符串,不足补0 return format(unsigned_num, '016b')
- 测试示例:
int_to_16bit_str(5)返回'0000000000000101' - 测试示例:
int_to_16bit_str(-1)返回'1111111111111111'
生成16位数字数组
基于上面的二进制字符串,将每个字符转换为整数即可得到数字数组:
def int_to_16bit_array(num): bit_string = int_to_16bit_str(num) # 遍历字符串每个字符,转为int后存入数组 return [int(bit) for bit in bit_string]
- 测试示例:
int_to_16bit_array(5)返回[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1]
其他语言示例(Java)
如果使用Java实现:
public class BitConverter { // 生成16位二进制字符串 public static String intTo16BitStr(int num) { // 保留低16位,处理负数 int unsignedNum = num & 0xFFFF; // 格式化为16位,补前导零 return String.format("%16s", Integer.toBinaryString(unsignedNum)).replace(' ', '0'); } // 生成16位数字数组 public static int[] intTo16BitArray(int num) { String bitStr = intTo16BitStr(num); int[] bitArray = new int[16]; for (int i = 0; i < 16; i++) { bitArray[i] = bitStr.charAt(i) - '0'; } return bitArray; } }
内容的提问来源于stack exchange,提问作者Amin
相关产品推荐
相关产品推荐

