标签: binary

有没有一种算法可以手动将十六进制的二进制补码转换为十进制?

假设我有十六进制 A41B 的二进制补码形式,我想将其转换为十进制。通常,我会将其转换为二进制,翻转所有位,加一,然后将其转换为十进制并输入正确的符号(正数或负数)。有没有更快的方法来手动完成此操作?

binary hex

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

在VHDL中将8位二进制数转换为BCD

该算法众所周知,您进行 8 次左移,并在每次移位后检查个位、数十位或数百位(每个 4 位)。如果它们超过 4 个,则将 3 个添加到该组中,依此类推...

这是一个基于流程的解决方案,但不起作用。它会编译,但输出不是我想要的。有什么想法可能是什么问题吗?

library ieee ;
use ieee.std_logic_1164.all ;
use ieee.std_logic_unsigned.all ;

entity hex2bcd is
    port ( hex_in  : in  std_logic_vector (7 downto 0) ;
           bcd_hun : out std_logic_vector (3 downto 0) ;
           bcd_ten : out std_logic_vector (3 downto 0) ;
           bcd_uni : out std_logic_vector (3 downto 0) ) ;
end hex2bcd ;

architecture arc_hex2bcd of hex2bcd is
begin
    process ( hex_in )
        variable hex_src : std_logic_vector (7 downto 0) ;
        variable bcd …
Run Code Online (Sandbox Code Playgroud)

binary vhdl bcd

1
推荐指数
1
解决办法
5万
查看次数

如何从 Java 中的二进制表示形式获取浮点数?

我想创建浮点数的二进制表示形式,并能够在需要时解析该数字。我所说的“二进制表示”并不是指“ 0.00101”,而是类似“ 101000101”的东西,也就是说,由0s 和1s 组成的序列,没有小数点分隔符。我需要一种方法来在Stringfor a中创建此类表示double并解析 adouble的 a String。请不要提及 XY 问题,因为我确实需要此方法(类似于“无符号二进制值”)。

先感谢您。

将双精度转换为二进制表示形式?double似乎解决了解析到的问题String,但我仍然需要帮助做相反的事情:从二进制到double.

java floating-point binary

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

将二进制字符串转换为十六进制字符串并保留其前导零

我可以知道如何编写Python脚本将二进制字符串转换为十六进制字符串并保留前导零吗?

例如,我有二进制字符串"0000000000001010",想将其打印到"000A". 我知道我可以使用zfill()函数,但前导零的数量未知。

python string binary hex

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

C++ 文件(exe)读取自身

我希望我的二进制文件能够自行读取,但我遇到了一些麻烦。现在这就是我得到的:

#include <iostream>
#include <fstream>

int main(int argc, char * argv[])
{
    char data[1000];
    std::fstream file(argv[0], std::ios::in | std::ios::binary);
    file >> data;

    std::cout << data;

    system("PAUSE");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

由于某种原因,这只打印前 3 个字符......就是这样。我不知道为什么它不读取整个文件。有什么帮助吗?

c++ binary fstream

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

理解表示负整数的offset-k方法

我正在阅读这篇关于表示负整数的 offset-k 方法的文章。有人可以用一些例子解释下面的段落吗:

表示有符号整数的一种逻辑方法是具有足够的二进制数范围,以便零可以偏移到正二进制数范围的中间。然后可以简单地从该零点减去负二进制数的大小。

我理解其中的机制,例如用 11 位表示数字 4,我会这样做4+1023=1027,但无法理解其背后的逻辑及其工作原理。

binary

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

C++ 如何将十进制数转换为二进制数?

我的任务是编写一些代码,这些代码将接受用户输入并将数字转换为其二进制数。到目前为止,我已经编写了一些代码,但遇到了一个问题。我必须使用 for 循环和商余数方法。当我输出余数(二进制)时,它不会打印最后一位数字。

我要问的问题是:我必须在 for 循环中更改什么才能使其打印出二进制数的最后一位数字?

int main()
{
    int num;
    int rem;

    cout << "Please enter a number: ";
    cin >> num;

    for (int i = 0; i <= (num + 1); i++)
    {
        num /= 2;
        rem = num % 2;
        cout << rem;
    }

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

任何帮助表示感谢,谢谢!

c++ binary loops for-loop decimal

1
推荐指数
1
解决办法
2万
查看次数

如何判断一个整数是否有符号?

我/计算机如何判断二进制数是有符号整数还是无符号整数?例如,二进制数 1000 0001 如果有符号,则可以解释为 -128,如果无符号,则可以解释为 129。

在 C 语言(据我所知)中使用无符号整数的一个优点是,它使您能够使用更大的整数,因为通过不定义符号可以获得额外的位。然而,在我看来,你需要在某个地方有一些东西来跟踪第一位是否代表一个符号,或者只是描述数字大小的一部分。

binary digital-logic

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

如何将汇编代码转换为二进制代码?

我使用以下代码创建了一个简单的 C++ 源文件:

    int main() {
    int a = 1;
    int b = 2;
    if(a < b) {
        return 1;
    }
    else if(a > b) {
        return 2;
    }
    else {
        return 3;
    }
}
Run Code Online (Sandbox Code Playgroud)

我使用objdump命令来获取上述源代码的汇编代码。
该行int b = 2;已转换为mov DWORD PTR [rbp-0x4], 0x2.
其对应的机器码为C7 45 FC 02 00 00 00(十六进制格式)。

我想知道如何将汇编代码转换为二进制代码。我浏览了 x86-64 的英特尔参考手册,但我无法理解它,因为我是低级编程的新手。

binary assembly x86-64 instruction-encoding

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

如何在 ruby​​ 中将二进制补码转换为十进制?

将二进制补码转换为十进制的最简单方法是什么?例如,如果我通常将“1001”之类的字符串转换为十进制,我会得到一个 9。但我实际上试图得到一个简单的 -7。你们有什么建议?,

ruby binary twos-complement

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