【发布时间】:2012-07-10 22:09:19
【问题描述】:
我得到这个字符串 8802000030000000C602000033000000000000800000008000000000000000001800000000000
这就是我期望从字符串转换的内容,
88020000 long in little endian => 648
30000000 long in little endian => 48
C6020000 long in little endian => 710
33000000 long in little endian => 51
左边是我从字符串中得到的值,右边是我期望的值。右侧的值可能是错误的,但是有什么办法可以从左侧获取右侧的值??
我在这里经历了几个线程,例如
How to convert an int to a little endian byte array?
C# Big-endian ulong from 4 bytes
我尝试了完全不同的功能,但没有什么能给我带来与我期望的差不多或接近的价值。
更新: 我正在阅读如下文本文件。大多数数据都是文本格式的,但突然间我得到一堆图形信息,我不知道如何处理它。
RECORD=28
cVisible=1
dwUser=0
nUID=23
c_status=1
c_data_validated=255
c_harmonic=0
c_dlg_verified=0
c_lock_sizing=0
l_last_dlg_updated=0
s_comment=
s_hlinks=
dwColor=33554432
memUsr0=
memUsr1=
memUsr2=
memUsr3=
swg_bUser=0
swg_dConnKVA=L0
swg_dDemdKVA=L0
swg_dCodeKVA=L0
swg_dDsgnKVA=L0
swg_dConnFLA=L0
swg_dDemdFLA=L0
swg_dCodeFLA=L0
swg_dDsgnFLA=L0
swg_dDiversity=L4607182418800017408
cStandard=0
guidDB={901CB951-AC37-49AD-8ED6-3753E3B86757}
l_user_selc_rating=0
r_user_selc_SCkA=
a_conn1=21
a_conn2=11
a_conn3=7
l_ct_ratio_1=x44960000
l_ct_ratio_2=x40a00000
l_set_ct_ratio_1=
l_set_ct_ratio_2=
c_ct_conn=0
ENDREC
GRAPHICS0=8802000030000000C602000033000000000000800000008000000000000000001800000000000
EOF
【问题讨论】:
-
为什么小端序中的 88020000 等于 648? 88020000 是十六进制的 53F1420,如果反转字节,则变为 20143F05,即十进制的 538197765。
-
@Robert: 88020000 已经是十六进制了,第三个数据包含非十进制数字就证明了这一点
-
@RobertHarvey 这有点令人困惑。对此感到抱歉。
标签: c# int endianness