将点分式形式的掩码转换为十进制形式的掩码

在用awk处理文本时,需要将源数据为点分式形式的掩码转换为十进制形式的掩码,下边的函数可简单实现:

  • 函数cdr2mask
function (mask_point) {
    num=gsub("255.","",mask_point)
    #print mask_point
    gsub(".0","",mask_point)
    #print mask_point
    mask=mask_point-0
    for(i = 0;mask > 0;i++){
        if (mask % 2^(7-i) == 0){
            i++
            break
        }else{
            mask -= 2^(7-i)
        }
    }
    mask_decade = 8*num + i
    return mask_decade
}

原文地址:https://www.cnblogs.com/wholj/p/9603821.html

时间: 2024-08-04 12:21:19

将点分式形式的掩码转换为十进制形式的掩码的相关文章

数字形式的人民币转换为大写形式

/// <summary> /// 转换人民币大小金额 /// </summary> /// <param name="num">金额</param> /// <returns>返回大写形式</returns> public string CmycurD(decimal num) { string str1 = "零壹贰叁肆伍陆柒捌玖"; //0-9所对应的汉字 string str2 = &q

识别字符串中的整数并转换为数字形式

识别字符串中的整数并转换为数字形式(40分) 问题描述: 识别输入字符串中所有的整数,统计整数个数并将这些字符串形式的整数转换为数字形式整数. 要求实现函数: void take_num(const char *strIn, int *n, unsigned int *outArray) [输入] strIn:   输入的字符串 [输出] n:       统计识别出来的整数个数 outArray:识别出来的整数值,其中outArray[0]是输入字符串中从左到右第一个整数, outArray[

java语言将任意一个十进制数数字转换为二进制形式,并输出转换后的结果

1 package com.llh.demo; 2 3 import java.util.Scanner; 4 5 /** 6 * 7 * @author llh 8 * 9 */ 10 public class Test { 11 /* 12 * 将任意一个十进制数数字转换为二进制形式,并输出转换后的结果(使用数组存储) 13 */ 14 public static void main(String[] args) { 15 Scanner sc = new Scanner(System.in

C++读入二进制数并转换为十进制输出

题目描述 已知一个只包含0和1的二进制数,长度不大于10,将其转换为十进制并输出. 输入描述 输入一个二进制整数n,其长度不大于10 输出描述 输出转换后的十进制数,占一行 样例输入 110 样例输出 6 solution: 很多学过C初学C++的人可能想到的是用字符数组形式读入再一位一位计算成十进制输出. 没必要. C++类库提供了二进制数据类,并且可以用其方法转换成十进制. 代码如下: 1 #include <iostream> 2 using namespace std; 3 4 #in

Java入门:基础算法之二进制转换为十进制

Java有两种方法可以将二进制数转换为十进制数: 1)使用Integer类的Integer.parseInt()方法. 2)自己编写转换逻辑. 方法1:使用Integer.parseInt()实现二进制转换为十进制 import java.util.Scanner; class BinaryToDecimal { public static void main(String args[]){ Scanner input = new Scanner( System.in ); System.out

华为初级——十六进制转换为十进制

 详解for循环(各种用法) 常见的for循环一般是一下代码这种结构: //1 for(int i=0;i<100;i++) cout<<"11\n"; //2 for(int i=100;i>0;i--) cout<<"11\n"; //3 for(int i=0;;i++) { if(i>100) break; cout<<"11\n"; //4 for(int i=0;;) { if(

负数的补码转换为十进制

一个数如果为正,则它的原码.反码.补码相同:一个正数的补码,将其转化为十进制,可以直接转换. 已知一个负数的补码,将其转换为十进制数,步骤: 1.先对各位取反: 2.将其转换为十进制数: 3.加上负号,再减去1. 例如: 11111010,最高位为1,是负数,先对各位取反得00000101,转换为十进制数得5,加上负号得-5,再减1得-6.

将八进制数转换为十进制数——java

import java.util.Scanner; /* * 编写方法,将八进制数转换为十进制数.Integer.valueOf("876",8).toString() * */ public class OctalToDecimal { public static void main(String[] args) { String oldValue; System.out.print("Input the an Octal number:"); oldValue

C语言:其他进制转换为十进制(方法二)

#include<stdio.h> #include<math.h> #include<string.h> #include<ctype.h> //其他任意进制转换为十进制 int main() { int trans(char a[],int ); char arr[100]; int t; printf("请输入进制的类型:"); scanf("%d",&t); printf("请输入该进制的数: