问题标签 [bit-representation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
225 浏览

python - 在 Python 中,如何翻译 *(1+(int*)&x)?

这个问题是这个问题的后续。在Sun 的数学库(C 语言)中,表达式

用于检索浮点数的高位字x。在这里,操作系统假定为 64 位,采用 little-endian 表示。

我在想如何将上面的 C 表达式翻译成 Python?这里的难点是如何翻译表达式中的“&”和“*”。顺便说一句,也许 Python 有一些内置函数可以检索浮点数的高位字?

0 投票
0 回答
202 浏览

objective-c - 二进制补码表示中的 BIGNUM

我有BIGNUM结构,其中包含非常大的正整数。我正在使用BN_bn2bin函数将此 BIGNUM 转换为字节数组:

我注意到 bigIntegerBytes 是无符号值表示。我想将这个整数从单值表示转换为二进制补码表示。你能告诉我该怎么做吗?

PS。我正在使用objective-c,所以也许有任何方法可以使用NSData。

0 投票
1 回答
224 浏览

python - Python 中的按位编程

我正在尝试编写一个程序来解决 ACM 问题,它必须非常快。解决该问题的一种数学上快速的方法是使用按位计算。但是,我正在使用 python,并且无法在位级别执行这些计算。问题是:

  1. 计算位中 1 和 0 的数量。例如,我们如何计算二进制数字 100010 有两个 1 和四个 0。我能想象的唯一方法是将其转换为字符串并计算它们。但是这种转换首先抵消了在位级别工作所获得的所有速度。
  2. 如何将描述二进制数字(例如“100101”)的字符串输入表示为Python中的实际二进制数字?目前我有一个将位转换为整数的函数,并对整数执行按位运算。
  3. 有位数据类型吗?那就是我可以将输入作为位而不是字符串或整数接收吗?

我确实考虑过在 C++ 中编写诸如 bitSet 之类的类,但我感觉这也不会很快。PS 我正在使用的二进制数字可能高达 1000 位,我可能必须使用 1000 个这样的二进制数字,因此效率至关重要。

0 投票
2 回答
725 浏览

python - 将带有表示错误的浮点数舍入到最接近且正确的结果

当 Python 中的经典表示错误开始成为问题时,我遇到了一种情况:我需要将它们用于 Numpy 中的矩阵运算,并且尚不支持小数类型。

你们都知道,如果我这样做,111.85 * 111.85我会得到12510.422499999999,但如果我round(12510.422499999999, 4)能得到正确的结果,那当然是12510.4225

但实际的问题是:

  • 这个圆形的东西是一个好主意和一个好习惯吗?
  • 这适用于所有情况吗?有时小数位置 ..999 可能更多
  • 最后,如何为所有可能的值获得适当的小数位数以用于该轮次?
0 投票
1 回答
79 浏览

floating-point - 浮点二进制表示

我在理解浮点表示(Two's Placement-sign mantissa exponent)时遇到问题,你能检查一下,我做得对吗?

-1/7

-1*1/7*2^0=-1*4/7*2^1=-1*4/7*2^2=-1*8/7*2^3

所以在二进制它会像:

1 00000011 1.001 001 001 001 001 001 001

我的主要问题是什么时候知道指数是负数,你能给我一些提示吗?

0 投票
1 回答
824 浏览

c++ - 将符号应用于 16 位的 dicom 图像

我正在尝试开发一个dicom图像查看器。我已成功解码图像缓冲区。我将所有图像像素值unsigned char存储在 C++ 的缓冲区中。

现在,当我显示图像时,它适用于像素表示 (0028,0103) = 0 的图像。有人可以告诉我如何将此签名转换应用到这些解码缓冲区中。我不知道如何将此有符号位转换为无符号位(我认为通常使用类型转换的转换效果不佳)。请发布 16 位图像的回放,这是我现在真正需要的。

我正在尝试从头开始创建一个查看器,它只是将图像放在屏幕上。我已经成功完成了dicom图像的解码和显示。但是,当我尝试打开像素表示(标记 0028,0103)=1 的图像时,图像显示不正确。从 16 位到 8 位的转换是与应用窗口级别和宽度(在 dicom 图像中找到的值)一起完成的,转换只是线性的。

0 投票
0 回答
90 浏览

assembly - 如何将 I 型指令转换为其 32 位表示?

给出以下指令:

添加 $s0, $0, -10

我需要计算它的 32 位表示。由于 addi 是 I 型指令

addi 的操作码是 001000。

卢比是 0 美元,即 00000

Rt os $s0,即 10000

我如何计算-10 的剩余 16 位?我将 10 转换为二进制并找到它的 1 和 2 的补码,并在最左侧添加 1(负位)。

我得到 001000 00000 10000 1000000011110110 转换为 0x201080F6,但它不正确。

我究竟做错了什么?

0 投票
1 回答
339 浏览

binary - 这个和如何在无符号二进制和二进制补码二进制中相等?

我正在阅读一本计算机体系结构的书,发现了以下内容:

假设您有一个 8 位单元。所以有 256 个可能的整数值。非负数从 0 到 127。假设二进制补码表示,97 + 45 的总和是多少?

无符号显然是 142,你可以用十进制的 97 + 45 来表示,或者:

但是当你执行二进制补码时,你会得到这个结果 ( 1000 1110) 并确定它是负数,因为符号位是 1。然后取它的一个补码:

然后确定它的补码:

这个数字是114但是因为我们的原始数字1在符号位中有一个,所以它是-114

问题):

为什么要费尽心思寻找二进制补码-114?由于 97 和 45,为什么不将两个正整数之和作为一个无符号值,该值适合 8 位单元格 ( 1111 1111being 255) 的范围。仅仅是因为问题要求二进制补码吗?

-114相当于142?_ 我相信,如果你采用二进制补码数线,你会142-256得到-114。由此,我不明白如果您将两个正值相加,为什么还要使用二进制补码!

0 投票
3 回答
1072 浏览

binary - ASCII 表和字符表示

我们在课堂上学习 ASCII 表,128 个字符中的每个字符都有一个从 0 到 128 的唯一数字来表示它。例如“a”是 97(二进制 97 是 1100001)。“%”是 37(二进制 37 是 0100101)。(我知道对于 7 的固定长度,我们应该允许二进制数以 0 开头)

如果 97 代表“a”,那么什么代表字符串“97”?整数 97 代表什么?

0 投票
1 回答
765 浏览

floating-point - [0,1] 上的定点表示与浮点表示

[0,1] 中的值的定点(位级)表示与其浮点(位级)值相比有什么区别/相似之处?