Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 73, средняя оценка - 4.74
ElvenDragon
3 / 8 / 1
Регистрация: 12.07.2009
Сообщений: 361
#1

Старший бит - C++

10.07.2010, 23:45. Просмотров 9606. Ответов 6
Метки нет (Все метки)

Допустим число 4 представляю в двоичной системе счисления получается 0100.
В етом двоичном числе старший бит ет 3 бит?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.07.2010, 23:45     Старший бит
Посмотрите здесь:

C++ Поменять местами старший и младший полубайты
C++ Низшие и старший разряды
В числе 15 поменять местами младший и старший байты C++
C++ Удалить из каждого байта строки первый (старший) бит.
C++ Бит реверс
Для целого числа А выделить старший байт и поставить его на место младшего байта. старший байт при этом обнулить. C++
C++ Поменять местами старший и младший полубайт беззнакового короткого целого
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alex_x_x
бжни
2445 / 1650 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
10.07.2010, 23:56     Старший бит #2
по такой логике у любого ненулевого числа старший бит 1ца
CyBOSSeR
Эксперт C++
2299 / 1669 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
11.07.2010, 00:20     Старший бит #3
ElvenDragon, старший - это который самый левый.
M128K145
Эксперт С++
8282 / 3501 / 143
Регистрация: 03.07.2009
Сообщений: 10,707
11.07.2010, 00:55     Старший бит #4
ElvenDragon, начнем с того, какая разрядность системы? Так вот старший бит - это самый левый бит для данной разрядности(x16 - 16-ый, x64 - 64-ый). Если число со знаком, то для старший бит будет означать знак числа, 1 - отрицательное число, 0 - положительное число.
Считать старшим битом самую левую единицу - ошибочно, в противном случае в системе со знаком все числа будут или нулем, или отрицательными числами
easybudda
Эксперт С++
9440 / 5463 / 925
Регистрация: 25.07.2009
Сообщений: 10,485
11.07.2010, 05:10     Старший бит #5
Я всё-таки с CyBOSSeR соглашусь. Старший бит - это тот, что крайний слева. При чём независимо от разрядности, знаковости и ещё чего-нибудь. В моём представлении у компьютера логика лампочки - либо светит, либо нет. А инвертировать все биты, прибавлять к крайнему справа ещё один и называть такой вот фортель отрицательным числом - это людьми надумано. Значение -1 присвоенное переменной типа char машина запишет, как 0xff - то бишь все биты единичные, и старший, и младший, и те, что между ними...
M128K145
Эксперт С++
8282 / 3501 / 143
Регистрация: 03.07.2009
Сообщений: 10,707
11.07.2010, 09:34     Старший бит #6
easybudda, у нас есть x16 система. тип int. число 15 = 0000 0000 0000 1111.
Старший бит у нас какой? 0000 0000 0000 1111. Тот который выделен красным, или тот который выделен зеленым? Если красным, то тогда выражение "старший бит равен 1" говорит о том что у нас отрицательное число, причем это не всегда так.

да и кстати, почему в числе 15 старший байт(выделен синим) 0000 0000 0000 1111 может быть нулевым, а старший бит почему-то вдруг не может? Несправедливо, согласны?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.07.2010, 11:44     Старший бит
Еще ссылки по теме:

C++ Определить, что старший байт числа равен значению переменной с
Инверсия бит C++
Считать старший байт числа C++
Бит 8, младший и старший бит (по книге) C++
переход с 32 бит на 64 бит C++

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

Или воспользуйтесь поиском по форуму:
Evg
Эксперт CАвтор FAQ
17387 / 5625 / 351
Регистрация: 30.03.2009
Сообщений: 15,407
Записей в блоге: 26
11.07.2010, 11:44     Старший бит #7
Цитата Сообщение от M128K145 Посмотреть сообщение
ElvenDragon, начнем с того, какая разрядность системы? Так вот старший бит - это самый левый бит для данной разрядности(x16 - 16-ый, x64 - 64-ый). Если число со знаком, то для старший бит будет означать знак числа, 1 - отрицательное число, 0 - положительное число.
Считать старшим битом самую левую единицу - ошибочно, в противном случае в системе со знаком все числа будут или нулем, или отрицательными числами
Именно так. Мы знаем, что считать можно до бесконечности, а потому при записи числа на листочке количество знаков может быть неограниченным. Понятие "старший" возникает только тогда, когда есть некоторое ограничение на количество записываемых символов (разрядов). Поэтому старший бит - это самый левый бит в записи N-битного числа, содержащей N разрядов (которые при необходимости слева добираются нулями). Просто глядя на число нельзя сказать, какой бит у него старший, нужно ещё знать, во сколько разрядов мы его хотим записать. Т.е. если мы число 128 записываем в переменную типа unsigned char (8 бит), то cтаршим битом будет единица, а если записываем в unsigned int (16 или 32 бита в зависимости от платформы), то старшим битом будет 0.

В случае знакового представления самый старший бит является знаковым (при условии что мы используем запись в дополнительном коде). И именно этот знаковый бит называют старшим (потому что больше нечего назвать этим термином). Вообще, старший бит - это крайний бит некоего абстрактного регистра (ограниченной длины) для хранения числа
Yandex
Объявления
11.07.2010, 11:44     Старший бит
Ответ Создать тему
Опции темы

Текущее время: 05:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru