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

Явно завышенное значение функции - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти в двухмерном массиве максимум и минимум, и поменять их местами http://www.cyberforum.ru/cpp-beginners/thread705325.html
Нужно найти в двухмерном массиве максимум и минимум, и поменять их местами. Как осуществить?
C++ нужно посчитать опреденные символы в строках Дан файл input.txt со следующими данными: Я - Петя!!!! Я люблю играть! Нужно посчитать количество восклицательных знаков в каждой строке и вывести в output.txt их количество: 4 0 http://www.cyberforum.ru/cpp-beginners/thread705320.html
Размер в битах через std::numeric_limits C++
Возможен ли? Или надо подключать limits.h?
Написать функцию которая проверяет на уникальность каждый номер C++
Решите пожалуйста Добавлено через 4 минуты Написать функцию которая проверяет табельный номер студента
C++ error: 'numeric_limits' is not a member of 'std' http://www.cyberforum.ru/cpp-beginners/thread705308.html
Как бороться с этой гогой?
C++ Не находит freopen Кусок кода из программы nt main () { freopen("theatre.in", "r", stdin); freopen("theatre.out", "w", stdout); std::ios_base::sync_with_stdio(false); size_t n, m; std::cin >> n >> m; assert(n <= 100 && m <= 100); UserClassificator classificator(n); size_t sumK = 0; подробнее

Показать сообщение отдельно
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619

Явно завышенное значение функции - C++

22.11.2012, 11:26. Просмотров 230. Ответов 0
Метки (Все метки)

Функция должна вернуть количество шестнадцетеричных чисел, минимально необходимых для представления значения параметра.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
size_t       Log16    (size_t       Bits )
{
 size_t result;
 size_t max;
 size_t start;
 max=std::numeric_limits<size_t>::max();
 start=(max/4)*4;
 for (result=start; result>0; result-=4)
 {
  if ((((Bits)>>result)&0x0F)!=0x00)
  {
   return result;
  }
 }
 return 0;
}
Bits=8 192 (нормально)
max=4 294 967 295 (странно, так как система x64)
start=4 294 967 292 (c учётом max нормально)
При значении result=4 294 967 276 (((Bits)>>result)&0x0F) приняло значение 0x02, что ещё более странно, чем 32-х битный sizof. С чем может быть связано?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 11:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru