arcgis shape文件海量提取某字段的前6位,到同一表的另一个字段,谢谢

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了arcgis shape文件海量提取某字段的前6位,到同一表的另一个字段,谢谢相关的知识,希望对你有一定的参考价值。

参考技术A =left([字段],6)本回答被提问者采纳

按位运算从一个长的提取每个单独的词

【中文标题】按位运算从一个长的提取每个单独的词【英文标题】:bitwise operation to extract each individual word from a long 【发布时间】:2014-02-02 22:55:09 【问题描述】:

我有一个对应于汇编语言指令的long。 这就是问题所在;第一个字段是操作码。它可以是 1 位或 2 位数字。因此,例如在120602 中,12 是操作码。在10602 中,1 是操作码。

我想提取每个单独的字段;其中opcode是左边的前1-2个数字,右边的1是op1mode,右边的1是op1gpr,右边的1是op2mode,最后是op2gpr。 理想情况下,我想将每个变量分配给自己的变量以供以后使用,或者将它们分隔在一个数组中。

我在想这可以通过按位运算来实现;即面具和班次。

如何仅通过按位运算来拆分数字?

【问题讨论】:

你确定这些操作码应该被解析为小数吗?这通常以十六进制完成,使用我知道的所有汇编语言:Z80、8x86、MC68000、ARM3。 (我还为所有这些编写了反汇编程序。) 这实际上是用于学校的,我们使用假设的十进制系统将其解析为小数 【参考方案1】:

Bitwise/bitshifts 不会对您有任何好处,除非这些字段以基数 2 表示形式组合。如图所示,您的数字以 10 为底。另一方面,您可以对显示的数字使用整数除法和模数。

120602 / 10000 = 12
120602 % 10000 = 602

这些基本上对应于二进制数字的以下几种运算:

0x1D71A >>> 12 = 0x1D
0x1D71A & 0xFFF = 0x71A

【讨论】:

【参考方案2】:

一种简单的方法(但没有位操作)是定义一个包含五个整数的数组,然后在其中填充您的数字的数字。您必须从数字末尾开始,这样更容易。

Java 示例:

long number = 120602;
int[] op = new int[5];
for(int i = 0; i < 4; ++i) 
    op[i] = (int) (number % 10);
    number /= 10;

op[4] = (int) number;

这里:

op[0]op2gpr op[1]op2mode op[2]op1gpr op[3]op1mode op[4]操作码

【讨论】:

以上是关于arcgis shape文件海量提取某字段的前6位,到同一表的另一个字段,谢谢的主要内容,如果未能解决你的问题,请参考以下文章

ArcGIS中怎么批量地提取某一个属性字段里面的文字呢?如图所示

gis筛选字段中的值

如何修改ArcGIS中shape文件属性表的字段类型

如何在arcgis下使shp文件自动生成点的X.Y坐标

请问在ArcGIS中如何提取原字段中的一部分?

请问在ArcGIS中如何提取原字段中的一部分?