Форум программистов, компьютерный форум CyberForum.ru

Objective-C

Войти
Регистрация
Восстановить пароль
 
vikewoods
0 / 0 / 0
Регистрация: 05.10.2013
Сообщений: 7
#1

Расчитать маскку сети исходя из диапозона - Objective-C

05.10.2013, 13:41. Просмотров 724. Ответов 8
Метки нет (Все метки)

Добрый день Господа!

Никак не могу понять как же считается маска сети зная ее Network & Broadcast IP's и как это можно сделать в Objective C

Я новичек в Objective C... Пока что накидал вот такое:

Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
//
//  IPCalculator.m
//  IP Network Calculator
//
//  Created by Vik Ewoods on 10/2/13.
//  Copyright (c) 2013 Vik Ewoods. All rights reserved.
//
 
#import "IPCalculator.h"
 
@implementation IPCalculator
 
// Classes Table
// Class    First Bit   Min IP      Max IP            Hosts
// A        0           1.0.0.0     126.0.0.1         2^24
// B        10          128.0.0.0   191.255.0.0       2^16
// C        110         192.0.1.0   223.255.255.0     2^8
// D        1110        224.0.0.0   239.255.255.255   Multicast
// E        11110       240.0.0.0   247.255.255.255   Reserved
 
// NOTES: CIDR -> Conver bits from 00000001 to 10000000
// NOTES: HOST -> (2^32-CIDR) - 2;
 
-(int)getCIDRprefixByMask:(NSString *)mask{
  if ([mask isEqualToString: @"255.255.255.255"]){
    cidrPrefix = 32;
  }else if ([mask isEqualToString:@"255.255.255.254"]) {
    cidrPrefix = 31;
  }else if ([mask isEqualToString:@"255.255.255.252"]){
    cidrPrefix = 30;
  }else if ([mask isEqualToString:@"255.255.255.248"]){
    cidrPrefix = 29;
  }else if ([mask isEqualToString:@"255.255.255.240"]){
    cidrPrefix = 28;
  }else if ([mask isEqualToString:@"255.255.255.224"]){
    cidrPrefix = 27;
  }else if ([mask isEqualToString:@"255.255.255.192"]){
    cidrPrefix = 26;
  }else if ([mask isEqualToString:@"255.255.255.128"]){
    cidrPrefix = 25;
  }else if ([mask isEqualToString:@"255.255.255.0"]){
    cidrPrefix = 24;
  }else if ([mask isEqualToString:@"255.255.254.0"]){
    cidrPrefix = 23;
  }else if ([mask isEqualToString:@"255.255.252.0"]){
    cidrPrefix = 22;
  }else if ([mask isEqualToString:@"255.255.248.0"]){
    cidrPrefix = 21;
  }else if ([mask isEqualToString:@"255.255.240.0"]){
    cidrPrefix = 20;
  }else if ([mask isEqualToString:@"255.255.224.0"]){
    cidrPrefix = 19;
  }else if ([mask isEqualToString:@"255.255.192.0"]){
    cidrPrefix = 18;
  }else if ([mask isEqualToString:@"255.255.128.0"]){
    cidrPrefix = 17;
  }else if ([mask isEqualToString:@"255.255.0.0"]){
    cidrPrefix = 16;
  }else if ([mask isEqualToString:@"255.254.0.0"]){
    cidrPrefix = 15;
  }else if ([mask isEqualToString:@"255.252.0.0"]){
    cidrPrefix = 14;
  }else if ([mask isEqualToString:@"255.248.0.0"]){
    cidrPrefix = 13;
  }else if ([mask isEqualToString:@"255.240.0.0"]){
    cidrPrefix = 12;
  }else if ([mask isEqualToString:@"255.224.0.0"]){
    cidrPrefix = 11;
  }else if ([mask isEqualToString:@"255.192.0.0"]){
    cidrPrefix = 10;
  }else if ([mask isEqualToString:@"255.128.0.0"]){
    cidrPrefix = 9;
  }else if ([mask isEqualToString:@"255.0.0.0"]){
    cidrPrefix = 8;
  }else if ([mask isEqualToString:@"254.0.0.0"]){
    cidrPrefix = 7;
  }else if ([mask isEqualToString:@"252.0.0.0"]){
    cidrPrefix = 6;
  }else if ([mask isEqualToString:@"248.0.0.0"]){
    cidrPrefix = 5;
  }else if ([mask isEqualToString:@"240.0.0.0"]){
    cidrPrefix = 4;
  }else if ([mask isEqualToString:@"224.0.0.0"]){
    cidrPrefix = 3;
  }else if ([mask isEqualToString:@"192.0.0.0"]){
    cidrPrefix = 2;
  }else if ([mask isEqualToString:@"128.0.0.0"]){
    cidrPrefix = 1;
  }else if ([mask isEqualToString:@"0.0.0.0"]){
    cidrPrefix = 0;
  }else{
    NSLog(@"Some errors with converting CIDR prefix");
  }
  NSLog(@"CIDR: %i", cidrPrefix);
  
    //NSLog(@"")
  return cidrPrefix;
}
 
-(int)calculateNetworkWithFullStartIP:(NSString *)full_start_ip WithFullEndIP:(NSString *)full_end_ip{
  // NOTES: Split start IP
  NSArray *splitLinesStartIP = [full_start_ip componentsSeparatedByString: @"."];
  int splitLinesStartIPA = [splitLinesStartIP[0] intValue];
  int splitLinesStartIPB = [splitLinesStartIP[1] intValue];
  int splitLinesStartIPC = [splitLinesStartIP[2] intValue];
  int splitLinesStartIPD = [splitLinesStartIP[3] intValue];
  
  // NOTES: Split end IP
  NSArray *splitLinesEndIP = [full_end_ip componentsSeparatedByString: @"."];
  int splitLinesEndIPA = [splitLinesEndIP[0] intValue];
  int splitLinesEndIPB = [splitLinesEndIP[1] intValue];
  int splitLinesEndIPC = [splitLinesEndIP[2] intValue];
  int splitLinesEndIPD = [splitLinesEndIP[3] intValue];
  
  // NOTES: Convert to decimal
  int startDecimalIp = splitLinesStartIPD + (splitLinesStartIPC * 256) + (splitLinesStartIPB * 256 * 256) + (splitLinesStartIPA * 256 * 256 * 256);
  int endDecimalIp = splitLinesEndIPD + (splitLinesEndIPC * 256) + (splitLinesEndIPB * 256 * 256) + (splitLinesEndIPA * 256 * 256 * 256);
  
  // NOTES: Log for now decimal
  //NSLog(@"Start network decimal: %i \n", startDecimalIp);
  //NSLog(@"End network decimal: %i \n", endDecimalIp);
  
  // NOTES: Log bins
  NSString *startDecimalIpBin = [self convertToBinWithDecimal:startDecimalIp];
  NSString *endDecimalIpBin = [self convertToBinWithDecimal:endDecimalIp];
  
  // NOTES: Split on octets
  NSArray *splitStartDecimalOnOctet = [startDecimalIpBin componentsSeparatedByString: @" "];
  NSString *splitStartDecimalOnOctet1 = splitStartDecimalOnOctet[0];
  NSString *splitStartDecimalOnOctet2 = splitStartDecimalOnOctet[1];
  NSString *splitStartDecimalOnOctet3 = splitStartDecimalOnOctet[2];
  NSString *splitStartDecimalOnOctet4 = splitStartDecimalOnOctet[3];
  
  NSArray *splitEndDecimalOnOctet = [endDecimalIpBin componentsSeparatedByString: @" "];
  NSString *splitEndDecimalOnOctet1 = splitEndDecimalOnOctet[0];
  NSString *splitEndDecimalOnOctet2 = splitEndDecimalOnOctet[1];
  NSString *splitEndDecimalOnOctet3 = splitEndDecimalOnOctet[2];
  NSString *splitEndDecimalOnOctet4 = splitEndDecimalOnOctet[3];
  
  if ([splitStartDecimalOnOctet3 isEqualToString:splitEndDecimalOnOctet3]) {
    NSLog(@"Last bits start: %@ \n", splitStartDecimalOnOctet3);
    NSLog(@"Last bits end: %@ \n", splitEndDecimalOnOctet3);
    NSLog(@"First 3 octet is equal");
  }else if ([splitStartDecimalOnOctet1 isEqualToString:splitEndDecimalOnOctet1] && [splitStartDecimalOnOctet2 isEqualToString:splitEndDecimalOnOctet2]){
    NSLog(@"Last bits start: %@ \n", splitStartDecimalOnOctet3);
    NSLog(@"Last bits end: %@ \n", splitEndDecimalOnOctet3);
    NSLog(@"First 2 octet is equal");
    // Reverse END of octet 2
    NSMutableString *reversedSplitEndDecimalOnOctet3 = [NSMutableString stringWithCapacity:[splitEndDecimalOnOctet3 length]];
    
    [splitEndDecimalOnOctet3 enumerateSubstringsInRange:NSMakeRange(0,[splitEndDecimalOnOctet3 length]) options:(NSStringEnumerationReverse | NSStringEnumerationByComposedCharacterSequences) usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop) {                       [reversedSplitEndDecimalOnOctet3 appendString:substring];
    }];
    
    NSMutableString *reversedSplitEndDecimalOnOctet2 = [NSMutableString stringWithCapacity:[splitEndDecimalOnOctet2 length]];
    
    [splitEndDecimalOnOctet2 enumerateSubstringsInRange:NSMakeRange(0,[splitEndDecimalOnOctet2 length]) options:(NSStringEnumerationReverse | NSStringEnumerationByComposedCharacterSequences) usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop) {                       [reversedSplitEndDecimalOnOctet2 appendString:substring];
    }];
    
    long int test = [startDecimalIpBin intValue] & [endDecimalIpBin intValue];
    long int first = [startDecimalIpBin intValue];
    long int last = [splitEndDecimalOnOctet3 intValue];
    first &= last;
    NSLog(@"Reverse last: %@", splitStartDecimalOnOctet);
    NSString* convertedTest = [NSString stringWithFormat:@"%ld", test];
    maskDecimal = [self convertToDecimalWithBin:convertedTest];
    maskToConvert = [NSString stringWithFormat:@"255.255.%li.0", maskDecimal];
    NSLog(@"Network mask: %@", maskToConvert);
    
    int CIDR = [self getCIDRprefixByMask:maskToConvert];
    [self totalHostClean:CIDR];
  }
  
  NSLog(@"Start binary: %@.%@.%@.%@", splitStartDecimalOnOctet1, splitStartDecimalOnOctet2, splitStartDecimalOnOctet3, splitStartDecimalOnOctet4);
  NSLog(@"End binary: %@.%@.%@.%@", splitEndDecimalOnOctet1, splitEndDecimalOnOctet2, splitEndDecimalOnOctet3, splitEndDecimalOnOctet4);
  
  return 0;
}
 
-(long int)totalHostClean:(int)mask{
    //long int totalHost = (2^(32-mask)) -2;
  mask = 19;
  long int totalHost = pow(2, (32-mask)) - 2;
  NSLog(@"Total %li hosts in network", totalHost);
  return totalHost;
}
 
-(id)convertToBinWithDecimal:(int)decimal{
  NSMutableString * binString = [[NSMutableString alloc] init];
  int spacing = pow(2, 3);
  int width = (sizeof(decimal)) * spacing;
  int binaryDigit = 0;
  int integer = decimal;
  while( binaryDigit < width ){
    binaryDigit++;
    [binString insertString:((integer & 1) ? @"1" : @"0" )atIndex:0];
    if( binaryDigit % spacing == 0 && binaryDigit != width ){
      [binString insertString:@" " atIndex:0];
    }
    integer = integer >> 1;
  }
  return binString;
}
 
-(long)convertToDecimalWithBin:(NSString *)bin{
  long decimal_converted = strtol([bin UTF8String], NULL, 2);
  return decimal_converted;
}
 
 
@end
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.10.2013, 13:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Расчитать маскку сети исходя из диапозона (Objective-C):

Расчитать значение поля исходя из двух других - JavaScript
Где ошибка? &lt;div class=&quot;ccms_form_element cfdiv_radio&quot; id=&quot;input_radio_121_container_div&quot; style=&quot;&quot;&gt;&lt;label&gt;Количество...

Расчитать зарплату госслужащего исходя из количества отработанных часов и почасовой ставки работника - C++
Здравствуйте, ув. программисты. Наткнулся на задачу. Ниже условия: &quot;Необходимо расчитать зарплату госслужащего исходя из...

Расчитать характеристики сети - Сети
Помогите пожалуйста решить две задачи. Я совсем не понимаю как к ним подойти. Я почитала Олифера, Таненбаума, Столлингса, но как решить -...

d-sub Вне диапозона 74.8/60 hz - Windows 7
Здравствуйте. вот купил полностью компьютер мощный. Когда установил драйвера из диска для монитора, который был вместе с монитором в...

Выход за границы диапозона - Pascal ABC
Задача: в первой строке входных данных записано натуральное число n (n ≤ 103). Во второй строке через пробел идут N целых чисел, по...

Интедкс за пределами диапозона - C#
Здравствуте. Я пишу программу суть которой является свод оценок студентов разных курсов и групп. Всё работет отлично. Я уже дошёл до...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Монфрид
1194 / 1004 / 153
Регистрация: 07.03.2012
Сообщений: 3,243
Завершенные тесты: 2
05.10.2013, 23:06 #2
else if с 20 до 94 строки страшно смотрятся
vikewoods
0 / 0 / 0
Регистрация: 05.10.2013
Сообщений: 7
05.10.2013, 23:59  [ТС] #3
Я только учусь ... Подскажите пожалуйста как это привезти в человеческий вид пожалуйста
Монфрид
1194 / 1004 / 153
Регистрация: 07.03.2012
Сообщений: 3,243
Завершенные тесты: 2
06.10.2013, 00:56 #4
switch-case наверно. От этого работать лучше не будет, правда.
vikewoods
0 / 0 / 0
Регистрация: 05.10.2013
Сообщений: 7
06.10.2013, 01:20  [ТС] #5
Switch:Case с NSString не очень дружит кстате ...
mobidevelop
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
07.10.2013, 00:11 #6
Там, вроде, алгоритм какой-то был. Как-то оно вычисляется, если я ничего не путаю. Точно не кучей if'ов. Это не сюда. Это в гугл или к админам.
vikewoods
0 / 0 / 0
Регистрация: 05.10.2013
Сообщений: 7
07.10.2013, 04:43  [ТС] #7
Гугл не помог к сожелению немогу понять этот алгоритм (
mobidevelop
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
07.10.2013, 13:01 #8
Оно может и offtop, но хочется дать совет, который, возможно, поможет вам в будущем.
Вы сейчас просите людей помочь в том, чего не можете сами. А они, возможно, могут. Простые правила приличия требуют от вас не заставлять их работать за вас хотя бы в той части, которую вы можете сделать сами. Не разобрались в алгоритме, но хоть ссылку-то на него дать можете?
vikewoods
0 / 0 / 0
Регистрация: 05.10.2013
Сообщений: 7
07.10.2013, 14:20  [ТС] #9
Прошу извинить. Формулы или алгоритма я так и не нашел за 3 дня обрыл первых 20 страниц яндекса и гугла.
Вообщем задал вопрос админам и понял что рассчитывать надо исходя из октетов, т.е. пример

1.0.1.0 - 1.0.3.255
00000001.00000000.00000001.00000000 - 00000001.00000000.00000011.11111111

Видим что первые 2 октета одинаковы и неизменны а также первый 6 бит третьего тоже неизменны. Как я понял мы просто заполняем 1 то что неизменно т.е. маска будет
11111111.11111111.11111100.00000000
255.255.252.0

Ну как бы переделал вот так:
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
//
//  IPCalculator.m
//  IP Network Calculator
//
//  Created by Vik Ewoods on 10/2/13.
//  Copyright (c) 2013 Vik Ewoods. All rights reserved.
//
 
#import "IPCalculator.h"
 
@implementation IPCalculator
 
// Classes Table
// Class    First Bit   Min IP      Max IP            Hosts
// A        0           1.0.0.0     126.0.0.1         2^24
// B        10          128.0.0.0   191.255.0.0       2^16
// C        110         192.0.1.0   223.255.255.0     2^8
// D        1110        224.0.0.0   239.255.255.255   Multicast
// E        11110       240.0.0.0   247.255.255.255   Reserved
 
// NOTES: CIDR -> Conver bits from 00000001 to 10000000
// NOTES: HOST -> (2^32-CIDR) - 2;
 
-(long)calculateNetworkWithFullStartIP:(NSString *)full_start_ip WithFullEndIP:(NSString *)full_end_ip{
  // NOTES: Split start IP
  NSArray *splitLinesStartIP = [full_start_ip componentsSeparatedByString: @"."];
  int splitLinesStartIPA = [splitLinesStartIP[0] intValue];
  int splitLinesStartIPB = [splitLinesStartIP[1] intValue];
  int splitLinesStartIPC = [splitLinesStartIP[2] intValue];
  int splitLinesStartIPD = [splitLinesStartIP[3] intValue];
  
  // NOTES: Split end IP
  NSArray *splitLinesEndIP = [full_end_ip componentsSeparatedByString: @"."];
  int splitLinesEndIPA = [splitLinesEndIP[0] intValue];
  int splitLinesEndIPB = [splitLinesEndIP[1] intValue];
  int splitLinesEndIPC = [splitLinesEndIP[2] intValue];
  int splitLinesEndIPD = [splitLinesEndIP[3] intValue];
  
  // NOTES: Convert to decimal
  int startDecimalIp = splitLinesStartIPD + (splitLinesStartIPC * 256) + (splitLinesStartIPB * 256 * 256) + (splitLinesStartIPA * 256 * 256 * 256);
  int endDecimalIp = splitLinesEndIPD + (splitLinesEndIPC * 256) + (splitLinesEndIPB * 256 * 256) + (splitLinesEndIPA * 256 * 256 * 256);
    //NSLog(@"Start decimal: %i", startDecimalIp);
    //NSLog(@"End decimal: %i", endDecimalIp);
  
  // NOTES: Log bins
  NSString *startDecimalIpBin = [self convertToBinWithDecimal:startDecimalIp];
  NSString *endDecimalIpBin = [self convertToBinWithDecimal:endDecimalIp];
  
  // NOTES: Split on octets
  NSArray *splitStartDecimalOnOctet = [startDecimalIpBin componentsSeparatedByString: @" "];
  NSString *splitStartDecimalOnOctet1 = splitStartDecimalOnOctet[0];
  NSString *splitStartDecimalOnOctet2 = splitStartDecimalOnOctet[1];
  NSString *splitStartDecimalOnOctet3 = splitStartDecimalOnOctet[2];
  NSString *splitStartDecimalOnOctet4 = splitStartDecimalOnOctet[3];
  
  NSArray *splitEndDecimalOnOctet = [endDecimalIpBin componentsSeparatedByString: @" "];
  NSString *splitEndDecimalOnOctet1 = splitEndDecimalOnOctet[0];
  NSString *splitEndDecimalOnOctet2 = splitEndDecimalOnOctet[1];
  NSString *splitEndDecimalOnOctet3 = splitEndDecimalOnOctet[2];
  NSString *splitEndDecimalOnOctet4 = splitEndDecimalOnOctet[3];
  
  if ([splitStartDecimalOnOctet1 isEqualToString:splitEndDecimalOnOctet1] && [splitStartDecimalOnOctet2 isEqualToString:splitEndDecimalOnOctet2] && [splitStartDecimalOnOctet3 isEqualToString:splitEndDecimalOnOctet3]){
      //NSLog(@"3 octet is equal");
      //NSLog(@"Last end octet: %@", splitEndDecimalOnOctet4);
    if([splitEndDecimalOnOctet4 isEqualToString:@"11111111"]){
      CIDR =24;
    }else if ([splitEndDecimalOnOctet4 isEqualToString:@"01111111"]) {
      CIDR = 25;
    }else if ([splitEndDecimalOnOctet4 isEqualToString:@"00111111"]){
      CIDR = 26;
    }else if ([splitEndDecimalOnOctet4 isEqualToString:@"00011111"]){
      CIDR = 27;
    }else if ([splitEndDecimalOnOctet4 isEqualToString:@"00001111"]){
      CIDR = 28;
    }else if ([splitEndDecimalOnOctet4 isEqualToString:@"00000111"]){
      CIDR = 29;
    }else if ([splitEndDecimalOnOctet4 isEqualToString:@"00000011"]){
      CIDR = 30;
    }else if ([splitEndDecimalOnOctet4 isEqualToString:@"00000001"]){
      CIDR = 31;
    }else if ([splitEndDecimalOnOctet4 isEqualToString:@"00000000"]){
      CIDR = 32;
    }
  }else if ([splitStartDecimalOnOctet1 isEqualToString:splitEndDecimalOnOctet1] && [splitStartDecimalOnOctet2 isEqualToString:splitEndDecimalOnOctet2]){
      //NSLog(@"2 octet is equal");
      //NSLog(@"Last end octet: %@", splitEndDecimalOnOctet3);
    if ([splitEndDecimalOnOctet3 isEqualToString:@"00000001"]) {
      CIDR = 23;
    }else if ([splitEndDecimalOnOctet3 isEqualToString:@"00000011"]){
      CIDR = 22;
    }else if ([splitEndDecimalOnOctet3 isEqualToString:@"00000111"]){
      CIDR = 21;
    }else if ([splitEndDecimalOnOctet3 isEqualToString:@"00001111"]){
      CIDR = 20;
    }else if ([splitEndDecimalOnOctet3 isEqualToString:@"00011111"]){
      CIDR = 19;
    }else if ([splitEndDecimalOnOctet3 isEqualToString:@"00111111"]){
      CIDR = 18;
    }else if ([splitEndDecimalOnOctet3 isEqualToString:@"01111111"]){
      CIDR = 17;
    }else if ([splitEndDecimalOnOctet3 isEqualToString:@"11111111"]){
      CIDR = 16;
    }
  }
  return [self totalHostClean:CIDR];
    //return true;
}
 
-(long)totalHostClean:(int)cidr{
  long int totalHost = pow(2, (32-cidr)) - 2;
  return totalHost;
}
 
-(id)convertToBinWithDecimal:(int)decimal{
  NSMutableString * binString = [[NSMutableString alloc] init];
  int spacing = pow(2, 3);
  int width = (sizeof(decimal)) * spacing;
  int binaryDigit = 0;
  int integer = decimal;
  while( binaryDigit < width ){
    binaryDigit++;
    [binString insertString:((integer & 1) ? @"1" : @"0" )atIndex:0];
    if( binaryDigit % spacing == 0 && binaryDigit != width ){
      [binString insertString:@" " atIndex:0];
    }
    integer = integer >> 1;
  }
  return binString;
}
 
-(long)convertToDecimalWithBin:(NSString *)bin{
  long decimal_converted = strtol([bin UTF8String], NULL, 2);
  return decimal_converted;
}
 
 
@end
Добавлено через 1 час 0 минут
И все равно не понятно мне дальше как же это считать ((

Добавлено через 6 минут
mobidevelop, http://infocisco.ru/prefix_network_mask.html
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.10.2013, 14:20
Привет! Вот еще темы с ответами:

Проброс диапозона портов - Сетевое оборудование
Стоит Windows Server 2012r2, на нем нужно пробросить диапазон портов (порядка 500 портов) в локальную сеть на компьютер. В службах...

D-sub 74.8 KHz / 60 hz Вне диапозона - Мониторы
Здравствуйте. вот купил полностью компьютер мощный. Когда установил драйвера из диска для монитора, который был вместе с монитором в...

Ввод диапозона чисел - C#
Здравствуйте!задали решить задачу,мне нужно ввести диапозон чисел например от -5 до 3,далее программа должна перемножить все числа...

Выбор диапозона и последующие удаление - VBA
Всем привет! Нужна помощь. Помогите с процедурой которая позволяет выделить диапозон ячеек, а те которые не попали в этот диапозон...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
07.10.2013, 14:20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru