powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Разрядность командной строки
12 сообщений из 12, страница 1 из 1
Разрядность командной строки
    #36820925
Igrok4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите как в bat-файлах суммировать числа 1 млрд. и больше? Для стандартных средств не хватает разрядности.
...
Рейтинг: 0 / 0
Разрядность командной строки
    #36820994
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как ты суммируешь? Покажи пример.
...
Рейтинг: 0 / 0
Разрядность командной строки
    #36821003
Igrok4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
set /a a =  1234567890 
set /a b =  3 
set /a c=%a%+%b%
echo c=%c% 
ещё проходит
а вот
Код: plaintext
1.
2.
3.
set /a a =  12345678901 
set /a b =  3 
set /a c=%a%+%b%
echo c=%c% 
уже нет
...
Рейтинг: 0 / 0
Разрядность командной строки
    #36821064
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хм.. да действительно.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
set /a a =  2147483646 
set /a b =  1 
set /a c=%a%+%b%
echo c=%c% 

set /a a =  2147483647 
set /a b =  1 
set /a c=%a%+%b%
echo c=%c% 

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
>set /a a =  2147483646 

>set /a b =  1 

>set /a c= 2147483646 + 1 

>echo c= 2147483647 
c= 2147483647 

>set /a a =  2147483647 

>set /a b =  1 

>set /a c= 2147483647 + 1 

>echo c=- 2147483648 
c=- 2147483648 

Похоже что челое число в CMD интерпретаторе представлено в виде int32 со знаком. Тогда тебе не повезло :(
...
Рейтинг: 0 / 0
Разрядность командной строки
    #36821183
Igrok4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonТогда тебе не повезло :(
Это я уже понял :)
Может у кого калькулятор есть написанный? Который выдаёт число ввиде строки.
...
Рейтинг: 0 / 0
Разрядность командной строки
    #36821294
junior  idiot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Калькулятора не было, но было занимательно вспомнить батники, лол.

Код: plaintext
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.
@echo off

rem складываемые числа
set x=% 1 
set y=% 2 
rem результат будет записан в Z
set z=
set r= 0 

:next_digit
rem берём последнюю цифру Х и Y
set d1=%x:~- 1 , 1 %
set d2=%y:~- 1 , 1 %

rem проверяем, что эти цифры существуют (можно ли проще?)
if %x%.==. (
	if %y%.==. (
		if %r%== 0  goto l_end
	)
	set d1= 0 
) else (
	rem отбрасываем последнюю цифру X
	set x=%x:~ 0 ,- 1 %
)
if %y%.==. (
	set d2= 0 
) else (
	rem отбрасываем последнюю цифру Y
	set y=%y:~ 0 ,- 1 %
)

rem складываем "столбиком"
rem сумма с учётом остатка
set /a r=r+d1+d2
rem очередная цифра (что-то взятие остатка через % не работает)
set /a d=r-(r/ 10 )* 10 
rem новый остаток
set /a r=r/ 10 

rem приписываем цифру к результату слева
set z=%d%%z%

rem echo x=%x%; y=%y%; d1=%d1%; d2=%d2%; r=%r%; d=%d%; z=%z%
goto next_digit

:l_end
rem сложение нулей
if %z%.==. set z= 0 
echo % 1  + % 2  = %z%
Код: plaintext
1.
C:\> 1 .bat  3334567891234567   66673456789123456 
 3334567891234567  +  66673456789123456  =  70008024680358023 
...
Рейтинг: 0 / 0
Разрядность командной строки
    #36821325
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Igrok4maytonТогда тебе не повезло :(
Это я уже понял :)
Может у кого калькулятор есть написанный? Который выдаёт число ввиде строки.
Язык шелла, который использует Windows весьма ограничен. Его основное назначение - запускать инталлировщики, программы со специфичным environment, формировать отчеты, e.t.c. Глядя, с каким извращением ты суммируешь числа, только диву даюсь, зачем надо за такие простые вещи платить столь высокую цену разработки.

Если тебе надо нечто большее чем .bat, .cmd - смотри в сторону JScript, VBScript. Они встроены в Windows и всегда запускаются успешно.
...
Рейтинг: 0 / 0
Разрядность командной строки
    #36822952
Igrok4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
junior idiot,

Спасибо! Прикольная вещица :)
...
Рейтинг: 0 / 0
Разрядность командной строки
    #36824884
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Если тебе надо нечто большее чем .bat, .cmd - смотри в сторону JScript, VBScript. Они встроены в Windows и всегда запускаются успешно.
если надо нечто большее чем бат и смд, надо взять человеческий шел из цигвина
и не калечить себе мозг микрософтом.
...
Рейтинг: 0 / 0
Разрядность командной строки
    #36824952
junior  idiot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если расчитывать, что скрипт будет выполняться на относительно новой винде, то можно и без цигвина обойтись: Windows Powershell -- весьма мощная штука, и под виндой её использовать приятнее, чем всякие баши, благодаря удобной поддержке COM и .NET.
...
Рейтинг: 0 / 0
Разрядность командной строки
    #36825062
belugin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
junior idiotЕсли расчитывать, что скрипт будет выполняться на относительно новой винде

...или есть возможность установить его на старую
...
Рейтинг: 0 / 0
Разрядность командной строки
    #36825765
jsXYZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
junior idiot,
молодца, не слушай Борчунов!
Код: plaintext
 99999999999999999999999999999999999999999  +  1  =  100000000000000000000000000000000000000000 
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Разрядность командной строки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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