标签: data-conversion

将 24 位二进制补码转换为 int?

我有一个 C#/Mono 应用程序,可以从 ADC 读取数据。我的读取函数将其返回为 ulong。数据是二进制补码,我需要将其转换为 int。例如:

0x7FFFFF = + 8,388,607
0x7FFFFE = + 8,388,606
0x000000 = 0
0xFFFFFF = -1
0x800001 = - 8,388,607
0x800000 = - 8,388,608
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

c# mono integer data-conversion twos-complement

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

TRY_PARSE 但速度更快

将大量(几乎 100 个)nvarchar 列转换为浮点数的最快方法是什么?

目前我有一堆 TRY_PARSE(column-name AS FLOAT) 语句,每列一个。

如果列不解析为浮动,我想要 NULL。没有错误通知,没有额外的智能。

有没有更快的方法?如果是的话,会是什么?

SQL Server 2012

sql-server data-conversion sql-server-2012

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

如何使用命令行实用程序将 .ogg 文件批量转换为 .wav?

我有一堆文件:

dir/file1.ogg
dir/file2.ogg
...
Run Code Online (Sandbox Code Playgroud)

我怎样才能将它们转换为 .wav 文件

dir/wav/file1.wav
dir/wav/file2.wav
...
Run Code Online (Sandbox Code Playgroud)

通过使用控制台命令?现在我使用的是 OSX,但我也需要 Windows 的答案。

terminal command-line ffmpeg data-conversion afconvert

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

错误:必须使用有效的下标向量对列进行子集化。x 由于精度损失,无法从 <double> 转换为 <integer>

我正在处理一个包含所有数字类型变量的数据框

summary.default(pfnew)
Run Code Online (Sandbox Code Playgroud)
  • ID 6016315 - 无 - 数字
  • 迭代器 6016315 -无- 数字
  • 值 6016315 -无- 数字
  • CV 6016315 -非数字

我想创建一个按迭代器和 CV 分组的数据透视表并汇总 ID 的计数。本质上,我想要数据框中对应于一组特定迭代器和 CV 值的点数。我使用的代码是:

代码

install.packages("tidyr")
install.packages("dplyr")
install.packages("vctrs")
library(vctrs)
library(tidyr)
library(dplyr)
allow_lossy_cast(pivot<-pfnew%>%
  select(pfnew$iterator,pfnew$CV,pfnew$ID)%>%
  summarise(CT=count(pfnew$ID)))
Run Code Online (Sandbox Code Playgroud)

但正如其他论坛中所讨论的,即使在使用allow_lossy_cast之后,我也收到了相同的错误消息。

错误:必须使用有效的下标向量对列进行子集化。x 由于精度损失,无法从 转换为 。

我们该如何解决这个问题?或者我们可以用其他方式做同样的工作吗?

pivot-table r data-conversion

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

将字符串转换为嵌套 JavaScript 对象或 JSON

我有以下字符串:

let str = "modules.mas.mas-helper-provider.assets.locales";
Run Code Online (Sandbox Code Playgroud)

并希望将其转换为嵌套 JavaScript 对象 (JSON),结果如下:

{
  "modules": {
    "mas": {
      "mas-helper-provider": {
        "assets": {
          "locales": ""
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

javascript string json data-conversion

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

如何用顺序GUID替换所有非顺序GUID?

我有一个棕色字段SQL Server 2005数据库,它使用标准的,未排序的GUID作为大多数主键值以及聚簇索引(这对性能有害).

我该如何将这些更改为顺序GUID?其中一个挑战是在更改每个主键时替换所有外键值.

您知道要执行此类转换的任何工具或脚本吗?

sql-server guid sql-server-2005 data-conversion

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

如何将人类可读的日期+时间转换为Python中的Unix时间戳?

我有一堆人类可读的日期和时间(具体来说,是nginx日志中的默认格式),我希望转换为Unix时间戳.格式如下:

04/Dec/2013:18:56:05 +0000
Run Code Online (Sandbox Code Playgroud)

这样做最可靠的方法是什么?有没有我可以用于此目的的库?

python time timestamp data-conversion

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

将十进制(用户字符串)转换为带有0x前缀的十六进制

我正在尝试从文本框中获取用户定义的十进制值,将其转换为十六进制(带有0x)前缀,然后将该值存储为整数。我目前停留在获取0x前缀的问题上,但是也许有一种更合适的方法可以实现此目的。

        string decimalString = textBox1.Text;

        //Convert decimalString string into an int
        int decimalNumber = int.Parse(decimalString);
        //Convert decimalNumber to a hex string
        string hexString = decimalNumber.ToString("X");

        Console.Write(decimalNumber);

        //TextBox Input: 151
        //Console Output: 97
        //Desired Output: 0x97 (as a string, but would like to assign to int if possible).
        int finalDesiredOutput = 0x97;
Run Code Online (Sandbox Code Playgroud)

希望我能很好地解释这一点。

在此项目中,我试图用0-2600(用户输入的值)之间的十进制值替换标头中的第13个字节。用户输入十进制数而不是十六进制值(即2600,而不是A28)更容易。

c# hex decimal data-conversion winforms

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

c ++将整数转换为8个字符十六进制,删除前两个char,使其仅为6个字符的十六进制,并转换回整数

我现在一直在寻找和试验很多很多小时,到目前为止,我还没有能够适应我遇到的任何解决方案来做我想做的事情.

我的目标是取一个整数(538214658)并将其转换为8个字符的十六进制字符串(020148102).然后我想删除前两个字符(0148102)并将其转换回整数(1343746),我将其用作地图数组中的键.

到目前为止我看到的解决方案只是将整数转换为十六进制字符串,但不考虑所需的数字长度.

我可以使用以下代码打印出前6个字符:

Console_Print("%06X", form ? form->refID : 0)
Run Code Online (Sandbox Code Playgroud)

所以我想也许我可以使用该技术将其存储到字符串中,然后使用iostream或sstream将其转换回整数,但我的搜索都没有出现我可以使用的任何内容.我的所有实验都失败了.

一些帮助将不胜感激.

编辑:以下是基于克劳斯建议的解决方案:

uint32_t GetCoreRefID(TESForm* form)
{
    uint32_t iCoreRefID = 0;
    if (form)
    {
        uint32_t iRefID = (uint32_t)(form->refID);
        iCoreRefID = iRefID & 0x00ffffff;
    }
    return iCoreRefID;
}
Run Code Online (Sandbox Code Playgroud)

c++ string hex integer data-conversion

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

使用UTF-8字符集时,为什么链字节[]→字符串→byte []输入和输出不同?

以下测试失败.

@Test
public void testConversions() {
    final Charset charset = Charsets.UTF_8;
    final byte[] inputBytes = {37, 80, 68, 70, 45, 49, 46, 52, 13, 10, 37, -11, -28, -10, -4, 13, 10};
    final String string = new String(inputBytes, charset);
    final byte[] outputBytes = string.getBytes(charset);
    assertArrayEquals(inputBytes, outputBytes);
}
Run Code Online (Sandbox Code Playgroud)

如果使用ISO_8859_1代替UTF-8字符集,即使使用更大的inputBytes阵列,测试也会通过.由于UTF-8的"可变宽度"属性,输入和输出是否不同?

额外问题:byte[] ? String ? byte[]如果使用ISO_8859_1 ,转换将始终具有相同的输入和输出字节数组,这是否是一个真正的假设?

java utf-8 data-conversion character-encoding

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