标签: binary

我不理解Java中二进制数的行为

我有以下代码:

System.out.println(0b11111111);
System.out.println((byte) 0b11111111);
Run Code Online (Sandbox Code Playgroud)

第一行打印

255

并打印第二行

-1

请问有人可以解释一下为什么结果会有所不同?(byte)铸造如何改变0b11111110它变成的数字-1

谢谢!

java binary

0
推荐指数
1
解决办法
66
查看次数

将带有数字的文本文件转换为二进制

我有一个双精度数字的文本文件.数字由换行符分隔.

1.58589
0.04151
0.03562
0.02866
0.04479
0.01562
0.0219
0.01162
0.0089
0.0123
0.00621
-0.0135
-0.0046
-0.01052
-0.00873
0.0018
0.00436
....
Run Code Online (Sandbox Code Playgroud)

如何将其转换为具有默认(系统)字节顺序的二进制文件?


编辑:

我不想压缩文件,只需确保连续存储双打,而文件中没有任何附加信息(标题等).

目标是能够稍后将文件直接读入内存并进行重新解释转换以获得double*数组(例如此处).


编辑2: 这个问题对整数提出了同样的问题,这更容易,因为二进制表示更简单.


编辑3:使用schaiba的提示可以将666.42转换为二进制数:

echo "obase=2;666.42" | bc
1010011010.011010
Run Code Online (Sandbox Code Playgroud)

但这包含一个点符号.我不知道如何将其写入文件.

binary ascii

0
推荐指数
1
解决办法
135
查看次数

为什么这个uint32_t -2147483648的值?

使用gcc编译器,为什么uint32_t在设置MSB时这是-2147483648?它没有签名 - 不应该是积极的吗?

#include <stdio.h>
#include <stdint.h>

#define BIT_SET(a,b) ((a) |= (1<<(b)))

int main()
{
    uint32_t var = 0;
    BIT_SET(var, 31);

    printf("%d\n", var); //prints -2147483648

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c binary uint32

0
推荐指数
1
解决办法
182
查看次数

读取c中的二进制值

我可以从二进制文件中读取无符号整数,但其中一个值打印为负数.

预期价值:

45788331,281302247,461354227,13127,299215653,2356985123,

打印出的价值观:

45788331,281302247,461354227,13127,299215653,-1932982173,

第6个值打印为负数,但我正在读取未签名的整数列表?

我的代码如下

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
        FILE * fp;
        ssize_t read;
        int r = 0;

        fp = fopen("numbers.bin", "rb");
        if (fp == NULL)
                exit(-1);

        while(fread(&r, sizeof(unsigned int), 1, fp) == 1)
        {
                printf("%d\n", r);
        }

        fclose(fp);
        if (line) free(line);

        exit(0);
}
Run Code Online (Sandbox Code Playgroud)

c binary

0
推荐指数
1
解决办法
251
查看次数

使用函数将十进制转换为二进制C#

我想使用函数制作十进制到二进制的转换器,但我没有看到我的代码有什么问题:(错误表明我不能简单地将字符串转换为char但我已在第12行转换它).编辑 - 我对将denary转换为二进制而不是输出的过程感兴趣.

    static void Main (string[] args)
    {
     Console.WriteLine("Decimal 14 = Binary " + dec_to_bin(14));
     Console.WriteLine("Decimal 100 = Binary " + dec_to_bin(100));
     Console.WriteLine("Decimal 32 = Binary " + dec_to_bin(32));
     Console.WriteLine("Decimal 64 = Binary " + dec_to_bin(64));
     Console.ReadLine();
    }
    public static string dec_to_bin(int dec)
    {
     string binary = "11111111";
     char[]binaryArray = binary.ToCharArray();

     for (int i = 0; i < 8; i++)
     {
      if (dec % 2 == 0)
      {
       binaryArray[i] = "0"; // error 1
      }
      else 
      {
       binaryArray[i] = …
Run Code Online (Sandbox Code Playgroud)

c# binary function decimal

0
推荐指数
1
解决办法
694
查看次数

写位到文件?

我正在尝试实现霍夫曼树。

我想做一个简单测试的简单.txt文件的内容:

aaaaabbbbccd
Run Code Online (Sandbox Code Playgroud)

字符频率:a:5,b:4,c:2,d:1

代码表:(1 s和0 s的数据类型:字符串

a:0
d:100
c:101
b:11         
Run Code Online (Sandbox Code Playgroud)

我想写为二进制的结果:(22位)

0000011111111101101100          
Run Code Online (Sandbox Code Playgroud)

如何将结果的每个字符作为二进制逐位写入“ .dat”文件?(不是字符串)

c++ binary ofstream huffman-code

0
推荐指数
1
解决办法
2164
查看次数

当我们需要在现实生活中将二进制转换为十六进制时

我是一名学生,正在研究二进制和十六进制.我想知道为什么我们需要将二进制数转换为十六进制数.它在现实生活中的用途是什么?

c++ binary hex

0
推荐指数
1
解决办法
81
查看次数

python中的二进制加法程序

我正在编写一个二进制加法程序,但不确定为什么输入以零开头时输出是不正确的,当程序必须在输入之一的开头加上零以使它们相同时,输出也是不正确的长度。

a = input('Enter first binary number\t')
b = input('Enter second binary number\t')

carry = 0
answer = ""

length = (max(len(a),len(b))) - min(len(a),len(b))

if b > a:
    a = length * '0' +  a
elif a > b:
    b = length * '0' +  b

print(a)
print(b)

for i in range(len(a)-1, -1, -1):                     
    x = carry                                        
    if a[i] == '1': x += 1
    else: x = 0

    if b[i] == '1': x += 1
    else: x = 0

    if …
Run Code Online (Sandbox Code Playgroud)

python binary python-3.x

0
推荐指数
1
解决办法
1770
查看次数

在python中改变MD5校验和的长度

我使用以下代码来计算MD5哈希码的二进制表示.

MD5 始终为 128个字节,并bin返回以"0b"开头的字符串.因此,长度md5_bin必须始终为130,但是当我运行程序时,它在128到130之间变化,在不同的值上random_str.

md5_bin = bin(int(hashlib.md5(random_str).hexdigest(),16))`
print len(md5_bin)
Run Code Online (Sandbox Code Playgroud)

python binary md5 hashlib

0
推荐指数
1
解决办法
220
查看次数

“ Windows的PHP二进制发行版”实际上是什么意思?它与PHP源代码有何不同?

我从PHP手册中遇到以下声明

Windows的PHP源代码和二进制发行版可以在» http://www.php.net/downloads.php找到。我们建议您选择离您最近的»镜像来下载发行版。

我的这种说法引起了以下疑问:

  1. “ Windows的PHP二进制发行版”实际上是什么意思?
  2. 为什么对于Linux,Mac OS X,RISC OS等其他操作系统没有这样的“ PHP二进制发行版”
  3. 我已在运行Windows 10操作系统的计算机上安装了PHP 7.2.3,并带有最新版本XAMPP软件包,然后安装了“ Windows的PHP二进制发行版”吗?
  4. “用于Windows的PHP二进制发行版”的用途/需求/必要性/优点/优点是什么?
  5. 是否只能在官方PHP网站上下载“ Windows的PHP二进制发行版”
  6. 如何在“适用于Windows PHP二进制分发版”是从不同的PHP源代码参照上面的语句从PHP手册?

请有人用一种易于理解的语言消除我所有上述疑虑。

php windows xampp binary software-distribution

0
推荐指数
1
解决办法
110
查看次数