Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
26 / 26 / 3
Регистрация: 10.04.2013
Сообщений: 167
1

32 битный Integer

15.02.2014, 13:26. Показов 1152. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Посчитать произведения в типе Integer (32 битном) и учитывать только те из них, которые помещаются в этом типе (не вызывают переполнение 32 битного типа именно как произведения).
Как это должно выглядеть?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.02.2014, 13:26
Ответы с готовыми решениями:

WIX Как добавить в реестр 32 битный ключ, если инсталлер 64 битный?
Имеется: <Package InstallerVersion="200" Compressed="yes" SummaryCodepage="1251" ...

Как на 64-битный ноут установить 32-битный XP?
Как на 64- битный ноут установить 32-битный XP?

преобразовать 8-битный bmp в 24-битный
помогите!!!вообще не имею понятия как это сделать:wall:

Нельзя преобразовать тип function(a: integer;b: integer):integer к real
unit matr1; interface type matr2=array of real; matr3=array of real; procedure sum...

12
]:->
102 / 96 / 19
Регистрация: 12.11.2013
Сообщений: 398
15.02.2014, 13:40 2
по-идее тип Integer и так занимает 32 бита...Скорее вам нужно выполнить произведение и сравнить результат с :

Java
1
Integer.MAX_VALUE
Добавлено через 1 минуту
ну и

Java
1
Integer.MIN_VALUE
соответственно. Если проверка проходит - учитывать...
1
26 / 26 / 3
Регистрация: 10.04.2013
Сообщений: 167
15.02.2014, 14:19  [ТС] 3
Через exception это можно как то сделать??
условие в задаче, не использовать "if"-ы.
0
]:->
102 / 96 / 19
Регистрация: 12.11.2013
Сообщений: 398
15.02.2014, 14:32 4
Цитата Сообщение от BabyGluk Посмотреть сообщение
Через exception это можно как то сделать??
условие в задаче, не использовать "if"-ы.
ну это ошибка компиляции...

выдаст что-то типо такого:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The literal 156165156121 of type int is out of range

Добавлено через 35 секунд
может кто-то подскажет решение...
1
161 / 157 / 29
Регистрация: 21.09.2013
Сообщений: 487
Записей в блоге: 2
15.02.2014, 14:37 5
Цитата Сообщение от dan41k Посмотреть сообщение
ну это ошибка компиляции...
Integer не кинет Exception, результат будет болтаться от Integer.MIN_VALUE до Integer.MAX_VALUE постоянно
0
]:->
102 / 96 / 19
Регистрация: 12.11.2013
Сообщений: 398
15.02.2014, 14:39 6
Цитата Сообщение от _Den_ Посмотреть сообщение
Integer не кинет Exception, результат будет болтаться от Integer.MIN_VALUE до Integer.MAX_VALUE постоянно
он Error кидает)

Java
1
            Integer i = new Integer(156165156121);
Добавлено через 50 секунд
а в выражениях да...
0
161 / 157 / 29
Регистрация: 21.09.2013
Сообщений: 487
Записей в блоге: 2
15.02.2014, 14:40 7
Ну тогда просто не можно будет скомпилить, думаю предполагается что значения переменных изначально в диапазоне
0
]:->
102 / 96 / 19
Регистрация: 12.11.2013
Сообщений: 398
15.02.2014, 14:43 8
Цитата Сообщение от _Den_ Посмотреть сообщение
Ну тогда просто не можно будет скомпилить, думаю предполагается что значения переменных изначально в диапазоне
ну я и говорю, что так - ошибка компиляции...

а как проверить на диапазон тогда, если нельзя использовать if() - не знаю...потому что нет Exception-a, который можно было обработать. В выражениях он действительно болтается между MIN_VALUE и MAX_VALUE...
0
161 / 157 / 29
Регистрация: 21.09.2013
Сообщений: 487
Записей в блоге: 2
15.02.2014, 14:49 9
Цитата Сообщение от BabyGluk Посмотреть сообщение
не вызывают переполнение 32 битного типа именно как произведения).
Дык переполнения никогда не будет, бессмысленное задание А если вам реально надо использовать в программе большие значения, используйте BigInteger
1
26 / 26 / 3
Регистрация: 10.04.2013
Сообщений: 167
15.02.2014, 14:51  [ТС] 10
В задание написали, что яко бы для таких приколов в Делфи что - то есть, но я не хочу его юзать.

Увижу что преподаватель скажет, я создал метод, который выкидывает исключение да и все)
Если не понравится, тогда не знаю
Java
1
2
3
4
5
6
7
8
9
10
11
12
private static int multii(int mult,int a,int b) throws MyIntRangeException{
        
        if( mult + (a*b) <= Integer.MAX_VALUE)
        mult +=(mult*(a*b))-1;
        else
            throw new MyIntRangeException();
        return mult;
    }
    static class MyIntRangeException extends Exception {
        MyIntRangeException(){
            super("Int range Exception");
        }
Добавлено через 56 секунд
Цитата Сообщение от _Den_ Посмотреть сообщение
Дык переполнения никогда не будет, бессмысленное задание А если вам реально надо использовать в программе большие значения, используйте BigInteger
Учту, спасибо)
0
]:->
102 / 96 / 19
Регистрация: 12.11.2013
Сообщений: 398
15.02.2014, 14:59 11
так if() же нельзя)))
1
Заблокирован
15.02.2014, 15:31 12
если я правильно понял задачу
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class MultiplyInteger {
 
    public static void main(String[] args) {
 
        int[] arr = { 0, 1, 2, 100500, Integer.MAX_VALUE, 123456780, -1 };
        int[] array = { Integer.MAX_VALUE, Integer.MAX_VALUE, Integer.MAX_VALUE, Integer.MAX_VALUE, Integer.MAX_VALUE, Integer.MAX_VALUE, Integer.MAX_VALUE };
 
        for (int i = 0; i < array.length; i++) {
            long mLong = (long) arr[i] * array[i];
            int mInt = (int) mLong;
            if (mLong != mInt) {
                System.out.println("Умножение " + arr[i] + " на " + array[i] + " вызовет переполнение.");
            }
        }
    }
}
1
2586 / 2259 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
15.02.2014, 20:57 13
Лучший ответ Сообщение было отмечено BabyGluk как решение

Решение

без ифа проверка
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/**
 * @author mutagen
 */
public class TryInt {
 
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        long[] la = {10, Integer.MAX_VALUE, Integer.MAX_VALUE + 10L};
 
        for (int i = 0; i < la.length; i++) {
            long l = la[i];
            try {
                int a = Integer.valueOf(Long.valueOf(l).toString());
                System.out.println("кастанулось ок " + a);
            } catch (Exception e) {
                System.out.println("не кастанулось " + l);
            }
        }
    }
 
}
1
15.02.2014, 20:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.02.2014, 20:57
Помогаю со студенческими работами здесь

Нельзя преобразовать тип function(z: integer;w: integer;e: integer): real к real
program pract18; uses crt; var x,a,i,k:integer; y:real; function prm1 (z,w,e:integer):real; ...

Вывести двоичный код вводимого числа(integer) и наоборот из двоичного в integer.
Напишите плиззз программу, которая выводит двоичный код вводимого числа(integer) и наоборот из...

Program1.pas(20) : Нельзя преобразовать тип IEnumerable<integer> к integer
выдает ошибку Program1.pas(20) : Нельзя преобразовать тип IEnumerable&lt;integer&gt; к integer пробовал...

Help function TCustomWinSocket.ReceiveBuf(var Buf; Count: Integer): Integer;
Здраствуй всезнающий All! Хочу задать вопрос относительно function...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru