Гость
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Подсчет символов со знаком "минус" / 9 сообщений из 9, страница 1 из 1
12.10.2021, 16:27
    #40103849
Piastry
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет символов со знаком "минус"
Если считать символы большого текстового файла, получается значение со знаком "минус"? Почему?
...
Рейтинг: 0 / 0
12.10.2021, 16:38
    #40103853
Подсчет символов со знаком "минус"
Потому же что когда на счетчике 9999, то следующим значением будет 0000. См Integer overflow .
...
Рейтинг: 0 / 0
12.10.2021, 16:55
    #40103858
mad_nazgul
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет символов со знаком "минус"
Piastry
Если считать символы большого текстового файла, получается значение со знаком "минус"? Почему?


Потому что Integer?!
<:o)
...
Рейтинг: 0 / 0
12.10.2021, 16:57
    #40103861
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет символов со знаком "минус"
2х гигабайтный текстовый файл. Бич старых файловых систем и 32х разрядных операционок.
...
Рейтинг: 0 / 0
12.10.2021, 17:03
    #40103864
Piastry
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет символов со знаком "минус"
Файл 4,5 гига. Строки, слова подсчитались без минуса. Там вышло несколько милионов. Значение числа символов (-1.6 млрд). Как решить проблему с минусом?
...
Рейтинг: 0 / 0
12.10.2021, 17:33
    #40103871
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет символов со знаком "минус"
Замени int на long.
...
Рейтинг: 0 / 0
12.10.2021, 17:39
    #40103873
Piastry
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет символов со знаком "минус"
Спасибо. Заработало.
...
Рейтинг: 0 / 0
12.10.2021, 17:42
    #40103875
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет символов со знаком "минус"
Смотри только не бери этот совет за чистую монету. А то будешь потом везде заменять....
...
Рейтинг: 0 / 0
13.10.2021, 10:12
    #40104007
faustgreen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет символов со знаком "минус"
У типа int диапазон значений от -2 147 483 648 до 2 147 483 647.
Для подсчета символов ты используешь положительные часть этого диапазона, т.е. от 0 до 2 147 483 647.
Получается, что используя переменную типа int, корректно посчитать размер файла в символах можно только его размер не превышает
2 147 483 647 символов.
Если к максимальному значению типа int прибавить, например, единицу, то мы сместимся в начало диапазона, т.е. в отрицательные значения.

Кроме того, иногда, когда размер твоего файла в символах больше чем 2 147 483 647 ты можешь получить положительное зачение, но оно будет неверным. Например:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
	public static void main(String[] args) {
		
		int startVal = 0;
		int maxVal = 2_147_483_647; 
		System.out.println(startVal + 2 * maxVal + 5); // 0 + 2* 2_147_483_647 + 5 = 3

		
	}
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Подсчет символов со знаком "минус" / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]