16 位二进制前导零

发布于 2024-11-09 18:28:38 字数 465 浏览 3 评论 0原文

我正在使用这样的 toBinaryString 转换方法:

for (i=0; i<anyLines.length; i++) {

            if (anyLines[i].startsWith("@")) {
                anyLines[i] = anyLines[i].replace("@","");
                anyLines[i] = Integer.toBinaryString((Integer.parseInt(anyLines[i])));
            }
            else {
                continue;
            }

但是当我写入文件时,二进制文件只有 2 位长,尽管我想要一个全为零的 16 位二进制文​​件。例如,2 被翻译为 10,但我想要 0000000000000010。我该怎么做?

I am using toBinaryString translation method like this:

for (i=0; i<anyLines.length; i++) {

            if (anyLines[i].startsWith("@")) {
                anyLines[i] = anyLines[i].replace("@","");
                anyLines[i] = Integer.toBinaryString((Integer.parseInt(anyLines[i])));
            }
            else {
                continue;
            }

But when I write to a file, the binary is only 2 bits long, though I want a 16 bit binary with all the zeros. For example, 2 is translated as 10, though I'd like to have 0000000000000010. How can I do that?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

々眼睛长脚气 2024-11-16 18:28:38

只需添加 2^17 和整个字符串的 substring 即可:

anyLines[i] = Integer.toBinaryString(131072 + (Integer.parseInt(anyLines[i]))).substring(1, 17);

Just add 2^17 and substring the whole string:

anyLines[i] = Integer.toBinaryString(131072 + (Integer.parseInt(anyLines[i]))).substring(1, 17);
一身仙ぐ女味 2024-11-16 18:28:38

设置二进制字符串后,只需检查字符串长度并在字符串前面附加足够的零以使其长度为 16 个字符。

After you set the binary string just check the string length and append enough zeros to the front of the string to make it 16 chars long.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文