Сообщение Re[5]: Что вы думаете о Rust? от 04.09.2023 21:25
Изменено 04.09.2023 22:05 CRT
Re[5]: Что вы думаете о Rust?
Здравствуйте, T4r4sB, Вы писали:
TB>Ну я бы уже на первой строчке бы задал вопросы — типа если чар знаковый, то автор уверен, что он имеет в виду 255, а не -1?
для автора может вообще этот char не число (знаковое или беззнаковое), а код, имеющий шестнадцатеричное представление 0xff и, соответственно, двоичное 11111111.
Но это не важно. Он не понимает почему байт, даже знаковый, беззнаково расширенный до unsigned int (так он воспринимает преобразование char к unsigned int) вдруг становится 0xffffffff. Оказывается потому что сначала он приводится к знаковому int, а потом уже к этому int применяется преобразование (unsigned int).
То есть пишем (unsigned int)с, а на самом деле имеем (unsigned int)(int)c
как-то не совсем интуитивно понятно и очевидно
TB>Ну я бы уже на первой строчке бы задал вопросы — типа если чар знаковый, то автор уверен, что он имеет в виду 255, а не -1?
для автора может вообще этот char не число (знаковое или беззнаковое), а код, имеющий шестнадцатеричное представление 0xff и, соответственно, двоичное 11111111.
Но это не важно. Он не понимает почему байт, даже знаковый, беззнаково расширенный до unsigned int (так он воспринимает преобразование char к unsigned int) вдруг становится 0xffffffff. Оказывается потому что сначала он приводится к знаковому int, а потом уже к этому int применяется преобразование (unsigned int).
То есть пишем (unsigned int)с, а на самом деле имеем (unsigned int)(int)c
как-то не совсем интуитивно понятно и очевидно
Re[5]: Что вы думаете о Rust?
Здравствуйте, T4r4sB, Вы писали:
TB>Ну я бы уже на первой строчке бы задал вопросы — типа если чар знаковый, то автор уверен, что он имеет в виду 255, а не -1?
для автора может вообще этот char не число (знаковое или беззнаковое), а некий код, имеющий шестнадцатеричное представление 0xff и, соответственно, двоичное 11111111.
Но это не важно. Он не понимает почему байт, даже знаковый, беззнаково расширенный до unsigned int (так он воспринимает преобразование char к unsigned int) вдруг становится 0xffffffff. Оказывается потому что сначала он приводится к знаковому int, а потом уже к этому int применяется преобразование (unsigned int).
То есть пишем (unsigned int)с, а на самом деле имеем (unsigned int)(int)c
как-то не совсем интуитивно понятно и очевидно
TB>Ну я бы уже на первой строчке бы задал вопросы — типа если чар знаковый, то автор уверен, что он имеет в виду 255, а не -1?
для автора может вообще этот char не число (знаковое или беззнаковое), а некий код, имеющий шестнадцатеричное представление 0xff и, соответственно, двоичное 11111111.
Но это не важно. Он не понимает почему байт, даже знаковый, беззнаково расширенный до unsigned int (так он воспринимает преобразование char к unsigned int) вдруг становится 0xffffffff. Оказывается потому что сначала он приводится к знаковому int, а потом уже к этому int применяется преобразование (unsigned int).
То есть пишем (unsigned int)с, а на самом деле имеем (unsigned int)(int)c
как-то не совсем интуитивно понятно и очевидно