一个软件可根据目标的经纬度显示在屏幕上,当更改目标的经纬度的十六进制时,目标的在屏幕上的位置会随着改变。
目标的经纬度由八位十六进制表示,当只更改此目标的前四位十六进制时,目标会上下改变位置,当只更改此目标的后四位十六进制时
目标会左右改变位置。因此判断前四位十六进制表示纬度,后四位十六进制表示经度。
当目标的纬度的十六进制为3e ef 00 00时,鼠标移动到显示目标上,显示的纬度是N264455.
当更改此目标的纬度的十六进制为3e e0 00 00时,鼠标移动到显示目标上,显示的经度是N250424当目标的经度的十六进制为3f ef 00 00 时,显示的的经度是E1065915,
改为3f f0 00 00时,显示的经度是E1072641
(说明:由于显示的经纬度是当前鼠标的位置,这一显示经纬度与目标的实际经纬度可能少许差异)
请问:已知一个目标的经纬度,怎样用八位十六进制表示出来?

解决方案 »

  1.   

    转换成16进制的就可以了。int x=1548;//经纬度
    string str="";
    str = x.ToString("X");
    //转换后str的值就是0000060C(通常显示60C)
      

  2.   

    应该是16位16进制数吧?!8位显示经度8位显示纬度分析如下:
    当目标的纬度的十六进制为3e ef 00 00时,鼠标移动到显示目标上,显示的纬度是N264455.
    当更改此目标的纬度的十六进制为3e e0 00 00时,鼠标移动到显示目标上,显示的经(应该是纬)度是N2504243e ef 00 00 -3e e0 00 00 = 00 0f 00 00= 15*256*256= 983040
    26度44'55" - 25度04'24"=1度40'31"=1*60*60+40*60+31=6031'        983040/6031=162.9978当目标的经度的十六进制为3f ef 00 00 时,显示的的经度是E1065915,
    改为3f f0 00 00时,显示的经度是E1072641,同理可得
    3f f0 00 00 - 3f ef 00 00=00 01 00 00=1*256*256=65536
    107度26'41"-106度59'15"=0度27'26"=27*60+26=1646                 65536/1646=39.81531  如果排除误差,刚好是上面数字的1/4很简单纬度就是按照160/1秒计算的,而经度就是按照40/1秒计算的
    这也在情理之中,因为南北纬加起来总共180度,而东西经加起来360度,本来疏密不一。如果分析算法,还应该搞清楚南纬,和西经是怎么表示的,请lz取样就可以分析出结果了。
      

  3.   

    还有一个类似的问题问各位:
    点的速度分为x\y两个分量,x分量的十六进制以及对应的十进制的值如下:        x的十六进制       对应的十进制值              y的十六进制       对应的十进制值   
    点A     b8 18 00 00    -831.192654418945         b6 01 00 00    -38.9079821403823点B     b8 18 e4 00    -836.062923878431         b6 00 00 00    -38.6063698757281点c     35 5a 99 35    18.6777794353256          b8 2a 54 e2    -821.985465940994点D     35 5a 00 00    18.6266445994377          b8 2a 54 00    -821.968824248657点E     b8 17 7d 3c    -828.399392007594         36 7e 0b 1e    76.6226131912826点F     b8 17 7f 3d    -828.442197110265         36 7e 0c 18    76.6237637507639点G     38 26 21 f1     908.474889230653         35 ef 70 66    36.1088780231953
      
    点H     38 26 20 00     908.433419179916         35 ef 70 00    36.1086433090612
    用点与点之间的十六进制差除以对应的十进制值差,得到如下结果
               x值比              y值比
    A B       -11984.5524     -217285.69
    c D       767011.359       -13580.3496
    E F       -11984.5524      217285.59
    F H       11984.5524       434571.187
    还测试了很多点,这里就不一一列出了.可以看出点x\y的十六进制表示中区分正负.那么这正负值是怎样表示的?
    已知点X\y的十六进制速度分量,怎样知道它的十进制值.谢谢各位先.分不够再加!
      

  4.   

    常见用int表示经纬度的方法来说,可以这样换算成度分秒
    int/1000000
    整数部分为度小数部分乘以60得到的整数部分既为分,小数部分乘以60既为秒