我正在尝试从配置文件中读入一堆无符号整数到类中.这些数字可以在base-10(例如:1234)或base-16(例如:0xAB31)中指定.因此strtoul在C#2.0中寻找等价物.
更具体地说,我对C#函数感兴趣,当函数指示基数或基数作为零传入时,该函数模仿this函数的行为.(在C++下,strtoul将尝试根据字符串中的前几个字符'猜测'基数或基数,然后继续适当地转换数字)
目前我手动检查string.Substring()字符串的前两个字符(使用方法)然后调用Convert.ToUInt32(hex, 10)或Convert.ToUInt32(hex, 16)根据需要.
我确信必须有更好的方法来处理这个问题,因此这篇文章.更优雅的想法/解决方案或解决方案将是很有帮助的.
我想转换一个int日期,如:
20111201
到string:
01DEC2011
是否有内置于 C++ 中的快速日期格式转换(或者我可以执行的 bash 系统命令)来执行此操作,或者我是否一直在进行切换?
我偶然发现了一些编码问题.我必须基本上从.csv文件中读取数据,看起来很像这样:
2011-06-19 17:29:00.000,72,44,56,0.4772,0.3286,0.8497,31.3587,0.3235,0.9147,28.5751,0.3872,0.2803,0,0.2601,0.2073,0.1172,0,0.0,0,5.8922,1,0,0,0,1.2759
Run Code Online (Sandbox Code Playgroud)
现在,我基本上需要一个由这样的行组成的整个文件,并将它们解析为numpy数组.直到现在,我已经能够使用类似于此的代码将它们变成一个大字符串类型对象:
order_hist = np.loadtxt(filename_input,delimiter=',',dtype={'names': ('Year', 'Mon', 'Day', 'Stock', 'Action', 'Amount'), 'formats': ('i4', 'i4', 'i4', 'S10', 'S10', 'i4')})
Run Code Online (Sandbox Code Playgroud)
此文件的格式包含一组截至目前的S20数据类型.我需要基本上将大ORDER_HIST数据类型中的所有数据提取到每列的一组数组中.我不知道如何保存日期时间列(我现在把它保存为String).我需要将其余部分转换为float,但下面的代码给出了一个错误:
temparr=float[:len(order_hist)]
for x in range(len(order_hist['Stock'])):
temparr[x]=float(order_hist['Stock'][x]);
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我如何将所有列转换为我需要的数组??? 或者可能指示我这样做一些链接?
我需要将我的数据的一列转换为二进制值.如果有空格,我试图插入0,如果有一个字符串,我试图插入1.
我的数据目前看起来像这样:
Name Code
Bob
Joe f59tuc
Anna
Kylie
Jill hyt618
Ben skt310
Run Code Online (Sandbox Code Playgroud)
我试图将其转换为:
name code
Bob 0
Joe 1
Anna 0
Kylie 0
Jill 1
Ben 1
Run Code Online (Sandbox Code Playgroud)
我尝试了这个if语句,但是得到了错误.我是R的新手,对if语句,while循环,for循环等有很少的经验 - 所以在代码中可能会有一些我没想到的明显错误.非常感激任何的帮助.
if (df$code[df$code == ""]) {
df$code[df$code] <- 0
}
else {
df$code[df$code] <- 1
}
Run Code Online (Sandbox Code Playgroud) 我试图将纬度= 8°50'34.46"和经度= 125°9'50.82"放入图像的exif文件中.我正在使用vb.net.
我没有将度数和分钟转换为字节的问题,因为它是一个整数但是当我将具有十进制值的秒(34.46")转换为字节时.它给出了不同的结果,如0.9856.
请帮助我们如何将带有十进制值的数字转换为字节.
这里的代码:
Private Shared Function intToByteArray(ByVal int As Int32) As Byte()
' a necessary wrapper because of the cast to Int32
Return BitConverter.GetBytes(int)
End Function
Private Shared Function doubleToByteArray(ByVal dbl As Double) As Byte()
Return BitConverter.GetBytes(Convert.ToDecimal(dbl))
End Function
Private Shared Function doubleCoordinateToRationalByteArray(ByVal doubleVal As Double) As Byte()
Dim temp As Double
temp = Math.Abs(doubleVal)
Dim degrees = Math.Truncate(temp)
temp = (temp - degrees) * 60
Dim minutes = Math.Truncate(temp)
temp = (temp - minutes) * 60 …Run Code Online (Sandbox Code Playgroud) 我需要通过Internet发送和接收大字节数组(http restful service).
我能想到的最简单的方法是将字节数组转换为字符串.
我搜索了一下,发现这个帖子Java Byte Array to String to Byte Array
我有以下代码来验证转换的准确性.
System.out.println("message");
System.out.println (message);
String message = "Die Strahlengriffelgewächse stammen...";
byte[] pack = Fbs.packExce(message);
System.out.println ("pack");
System.out.println (pack);
System.out.println ("packlenght:" + pack.length);
String toString = new String(pack);
System.out.println ("toString");
System.out.println (toString);
byte[] toBytes = toString.getBytes();
System.out.println ("toBytes");
System.out.println (toBytes);
System.out.println ("toByteslength:" +toBytes.length);
Run Code Online (Sandbox Code Playgroud)
"Fbs.packExce()"是一种获取大块字符串并生成大字节数组的方法.
我改变了消息的长度,检查并打印出字节数组的长度,然后转换为字符串并转换回来.
我得到了以下结果:
...
pack
[B@5680a178
packlenght:748
...
toBytes
[B@5fdef03a
toByteslength:750
----------------------
...
pack
[B@5680a178
packlenght:1016
...
toBytes
[B@5fdef03a
toByteslength:1018
Run Code Online (Sandbox Code Playgroud)
我省略了"消息",因为它太长了.
10次中的8次,我可以看到派生的字节数组(新的,称"toBytes")比原始字节数组("pack")长2个字节
我说过10个中的8个,因为在派生和原始之间的长度相同的情况下也会出现,见下文 …
如何将IPv6地址转换为二进制字符串?
例:
IPv6: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
Binary: 0010000000000001 0000110110111000 1000010110100011 0000000000000000 0000000000000000 1000101000101110 0000001101110000 0111001100110100
Run Code Online (Sandbox Code Playgroud)
我想用Java做到这一点.这是我失败的尝试(我没有要求与此尝试相关的解决方案):
用C++实现,我更熟悉:
#include <iostream>
#include <string>
#define _BSD_SOURCE
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
std::string toBinary(unsigned long int decimalIpV6)
{
std::string r;
while(decimalIpV6!=0) {r=(decimalIpV6%2==0 ?"0":"1")+r; decimalIpV6/=2;}
return r;
}
unsigned long int ipV6toDecimal(std::string binaryString) {
struct sockaddr_in antelope;
inet_aton(binaryString.c_str(), &antelope.sin_addr); // store IP in antelope
// and this call is the same as the inet_aton() call, above:
antelope.sin_addr.s_addr = inet_addr(binaryString.c_str());
return antelope.sin_addr.s_addr;
}
int main() {
std::string …Run Code Online (Sandbox Code Playgroud) 我有一些代码,我不明白如何获取单个项目:
u32_t foo = ((u32_t)((d) & 0xff) << 24) | ((u32_t)((c) & 0xff) << 16) |
((u32_t)((b) & 0xff) << 8) | (u32_t)((a) & 0xff)
Run Code Online (Sandbox Code Playgroud)
我想输入这个转换的结果我想要将IP地址转换回要显示的部分.但是当我输入192 168 1 200时,我得到0xC801A8C0而我没有将其转换回来.
有谁知道我如何在union结构中的项目?我尝试使用LwIP,但工会结构有问题.我尝试访问local_ip和remote_ip.

前言:
我目前正在尝试解密旧的二进制格式(在日本80年代中期到80年代后期开发),该格式将浮点值存储在4字节块中,而不是用IEEE754标准转换.我有一个程序为我转换值,所以我可以操纵二进制文件来更改存储的值并查看结果,但我无法弄清楚如何解释它们.
我确实解释了4个字节的每个可能的排列作为IEEE浮点数,但没有一个是正确的,所以我可以说它不是字节序问题,也不是我知道或可以在互联网上找到的浮点数表示.
我试图调查我使用的程序的程序集,但是我的汇编程序技能不够好,无法从中获取任何东西.
这里有些例子:
Actuall问题:
在IEEE754标准之外/之前是否还有其他(旧的)32位浮点表示?
floating-point binaryfiles data-conversion binary-data ieee-754
我想编写一个函数,将可变数量的变量(在下面的示例中,数组sc,矩阵A,数字T)转换为包含它们的结构。相应的结构标签应为变量本身的名称。请参见下面的示例:
sc=[1 2 1 0.5 0.01 0.03];
A=[1,2,3,4;1,2,3,4];
T=2;
Run Code Online (Sandbox Code Playgroud)
我希望我的职能做到这一点:
data.sc=sc;
data.A=A;
data.T=T;
Run Code Online (Sandbox Code Playgroud)
因此输出为:
数据=
结构与字段:
Run Code Online (Sandbox Code Playgroud)sc: [1 2 1 0.5000 0.0100 0.0300] A: [2×4 double] T: 2
用于可变数量的异构参数。