java - 如何将 int 数转换为两个数字,首先由奇数位组成,第二个由偶数位组成
问题描述
如何将 int=43707 转换为其他两个数字?
第一个数字由奇数位的值组成。第二个数字由偶数位的值组成。
int x = 43707; // 1010101010111011
var even = 0;
var odd = 0;
for (int i = 0; i<=31; i++) {
if(i%2 == 0) {
?
} else {
?
}
}
解决方案
我想到了这个:
int x = 43707;
String binary = Integer.toBinaryString(x);
System.out.println("binary=" + binary);
String odds = "";
String evens = "";
for (int i = binary.length() - 1; i >= 0; i--) {
if ((i + 1) % 2 == 0) {
odds += binary.charAt(i);
} else {
evens += binary.charAt(i);
}
}
System.out.println("odds=" + odds);
System.out.println("evens=" + evens);
int odd = Integer.parseInt(odds, 2);
int even = Integer.parseInt(evens, 2);
System.out.println("number from odd bits=" + odd);
System.out.println("number from even bits=" + even);
印刷
binary=1010101010111011
odds=10100000
evens=11111111
number from odd bits=160
number from even bits=255
我从右到左数位。
推荐阅读
- r - 在 PCA 双标标签中添加下标
- c++ - 如何转换 std::basic_string
在对 C++ 程序进行逆向工程时,将其转换为 Rust 可读值? - postman - Postman 如何处理 localhost OAuth 2 重定向?
- php - 使用 docker nginx 映像时我将 index.php 放在哪里
- python - 你如何解决这个循环,以便“阅读更多”按钮只在每张卡片中折叠?
- google-cloud-platform - Google Cloud Dataflow - 是否可以定义从 BigQuery 读取数据并写入本地数据库的管道?
- gpu - 有没有办法在多 GPU 上运行 Rapids 时间序列模块(ARIMA、ESM)?
- java - 如果无法连接到 Xserver,则使命令在没有 gui 的情况下运行
- amazon-web-services - 允许 ECS 任务访问 RDS
- java - MPChart 在适合屏幕上不显示轴标签