首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从PLMN中提取MCC和MNC?

如何从PLMN中提取MCC和MNC?
EN

Stack Overflow用户
提问于 2012-04-27 05:45:43
回答 2查看 26.1K关注 0票数 9

我正在运行AT命令AT+KCELL以获取单元信息,它除其他外返回一个PLMN (公共陆地和移动网络) --文档中对此的描述如下:

PLMN标识符(3个字节),由MCC (移动国家代码)和MNC (移动网络代码)组成。

好的,这与维基百科的说法相符--在这里有MCC和MNC。现在我不明白的是如何提取上述MCC和MNC值?

下面是一个例子。我回来了:

代码语言:javascript
运行
复制
32f210

我被告知(尽管我对此表示怀疑),这将导致:

代码语言:javascript
运行
复制
MNC: 1
MCC: 232

但在我的一生中,我无法想出如何从PLMN中得到这个结果,所以我如何解析这个结果呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-27 17:15:15

好吧,我已经发现了这个问题,我想在这里加上一个答案,以防有其他不幸的人不得不这么做--名为GSM技术规范的PDF (第10.2.4节)包含了答案,相关的部分是:

PLMN内容:移动国家代码(MCC),其次是移动网络代码(MNC)。编码:根据TS GSM 04.08 14。

  • 如果所需的存储小于最大可能数n,则多余的字节将设置为“FF”。例如,MCC使用246,MNC使用81,如果这是第一个也是唯一的PLMN,内容如下:字节1-3:'42‘'F6’18‘字节4-6:'FF’等等。

所以我怀疑是错的!

我需要从左边读取,把数字交换过来,所以前两个字节是MCC,所以是232f,而MNC是01,然后我丢弃f,我有232和1!很高兴有一个被分类了。

例如,在c#中,您可以这样做:

代码语言:javascript
运行
复制
string plmn = "whatever the plmn is";

string mcc = new string(plmn.Substring(0, 2).Reverse().ToArray())
    + new string(plmn.Substring(2, 2).Reverse().ToArray())
    .Replace('f', ' ')
    .Trim();

string mnc = new string(plmn.Substring(4, 2).Reverse().ToArray())
    .Replace('f', ' ')
    .Trim();
票数 14
EN

Stack Overflow用户

发布于 2016-10-28 06:57:29

下面是一个按位操作的java答案:

代码语言:javascript
运行
复制
public static String mcc(byte[] plmnId) {
  if (plmnId == null || plmnId.length != 3)
    throw new IllegalArgumentException(String.format("Wrong plmnid %s", Arrays.toString(plmnId)));

  int a1 = plmnId[0] & 0x0F;
  int a2 = (plmnId[0] & 0xF0) >> 4;
  int a3 = plmnId[1] & 0x0F;

  return "" + a1 + a2 + a3;
}

public static String mnc(byte[] plmnId) {
  if (plmnId == null || plmnId.length != 3)
    throw new IllegalArgumentException(String.format("Wrong plmnid %s", Arrays.toString(plmnId)));

  int a1 = plmnId[2] & 0x0F;
  int a2 = (plmnId[2] & 0xF0) >> 4;
  int a3 = (plmnId[1] & 0xF0) >> 4;

  if (a3 == 15)
    return "" + a1 + a2;
  else
    return "" + a1 + a2 + a3;
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10345379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档