Как проверить значение переменной между MAX_INT и MIN_INT 32-битной ОС - PullRequest
1 голос
/ 29 июня 2019

Я понимаю, что все переменные имеют тип строки.

Как мы можем проверить значение переменной между MAX_INT (0x7FFFFFFF) и MIN_INT (-0x80000000) 32-битной ОС

set var "12334"
...How to check var variable datatype and value range ..

1 Ответ

3 голосов
/ 29 июня 2019

Команда string is int выполняет большую часть работы. Вы можете использовать tcl::mathop::<= для отдыха:

set MIN_INT -0x80000000
set MAX_INT 0x7FFFFFFF
if {[string is int -strict $value] && [tcl::mathop::<= $MIN_INT $value $MAX_INT]} {
    puts "$value is a proper 32-bit signed integer"
}

Вы можете использовать это, если хотите (круглые скобки только для ясности):

if {[string is int -strict $value] && ($MIN_INT <= $value) && ($value <= $MAX_INT)} {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...