我有一个 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)
我怎样才能做到这一点?
将大量(几乎 100 个)nvarchar 列转换为浮点数的最快方法是什么?
目前我有一堆 TRY_PARSE(column-name AS FLOAT) 语句,每列一个。
如果列不解析为浮动,我想要 NULL。没有错误通知,没有额外的智能。
有没有更快的方法?如果是的话,会是什么?
SQL Server 2012
我有一堆文件:
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 的答案。
我正在处理一个包含所有数字类型变量的数据框
summary.default(pfnew)
Run Code Online (Sandbox Code Playgroud)
我想创建一个按迭代器和 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 由于精度损失,无法从 转换为 。
我们该如何解决这个问题?或者我们可以用其他方式做同样的工作吗?
我有以下字符串:
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) 我有一个棕色字段SQL Server 2005数据库,它使用标准的,未排序的GUID作为大多数主键值以及聚簇索引(这对性能有害).
我该如何将这些更改为顺序GUID?其中一个挑战是在更改每个主键时替换所有外键值.
您知道要执行此类转换的任何工具或脚本吗?
我有一堆人类可读的日期和时间(具体来说,是nginx日志中的默认格式),我希望转换为Unix时间戳.格式如下:
04/Dec/2013:18:56:05 +0000
Run Code Online (Sandbox Code Playgroud)
这样做最可靠的方法是什么?有没有我可以用于此目的的库?
我正在尝试从文本框中获取用户定义的十进制值,将其转换为十六进制(带有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)更容易。
我现在一直在寻找和试验很多很多小时,到目前为止,我还没有能够适应我遇到的任何解决方案来做我想做的事情.
我的目标是取一个整数(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) 以下测试失败.
@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 ,转换将始终具有相同的输入和输出字节数组,这是否是一个真正的假设?
data-conversion ×10
c# ×2
hex ×2
integer ×2
sql-server ×2
string ×2
afconvert ×1
c++ ×1
command-line ×1
decimal ×1
ffmpeg ×1
guid ×1
java ×1
javascript ×1
json ×1
mono ×1
pivot-table ×1
python ×1
r ×1
terminal ×1
time ×1
timestamp ×1
utf-8 ×1
winforms ×1