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

Поиск количества битов для типа - C++

Восстановить пароль Регистрация
 
aleksand
21 / 9 / 2
Регистрация: 18.06.2011
Сообщений: 185
25.09.2012, 21:45     Поиск количества битов для типа #1
Всё понятно, кроме вот этого ((log((double)a)/log((double)2))); Мы логарифм числа а(числа 2 147 483 647) делим на логарифм числа 2 (на калькуляторе 9.33/0.3 = 31 (всё это примерно)).
1).Так вот какое тут основание у логарифма я понять никак не могу?
2). И почему 2 147 483 647, а не все 4 миллиона?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
#include <math.h>
int main()
{
int a,i;
for(a=0; ;a++)
if(a<0)
break;
printf("min: %d", a);
a--;
i=1+((log((double)a)/log((double)2)));
printf(" max: %d bait: %d\n",a, i);
 
system("pause");
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.09.2012, 21:45     Поиск количества битов для типа
Посмотрите здесь:

Поиск заданной буквы в строке. Определения количества слов C++
поиск количества делителей чисел от 1 до N C++
Написать функцию, которая для заданного числа Х вычисляет количество единичных битов в этом числе C++
C++ Битовые операции (написать функцию для сброса в ноль двух битов с заданными номерами в коде символа)
C++ Подскажите быстрый поиск количества интервалов в отрезке
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
25.09.2012, 21:50     Поиск количества битов для типа #2
Цитата Сообщение от aleksand Посмотреть сообщение
какое тут основание у логарифма
Натуральный логарифм.
Натуральный логарифм — это логарифм по основанию e, где e — иррациональная константа, равная приблизительно 2,718281828.
aleksand
21 / 9 / 2
Регистрация: 18.06.2011
Сообщений: 185
25.09.2012, 22:07  [ТС]     Поиск количества битов для типа #3
Цитата Сообщение от alsav22 Посмотреть сообщение
Натуральный логарифм.
А вот с почему мы берём натуральный логарифм от 2 147 483 647, а не от 4 294 967 295? (ведь если так сказать искать количество бит по простяцки, то это: 4 294 967 295 делим на 2 и к количеству делений коих будет ровно 31 прибавляем 1)

Добавлено через 14 минут
Вопрос решил. Спасибо за ответы
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
25.09.2012, 22:09     Поиск количества битов для типа #4
Может потому, что int это целое число со знаком от −2,147,483,648 до +2,147,483,647 ?
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,051
08.10.2012, 19:55     Поиск количества битов для типа #5
Цитата Сообщение от aleksand Посмотреть сообщение
for(a=0; ;a++)
if(a<0)
break;
а так???
C++
1
for(a=0;a<0;a++);
Yandex
Объявления
08.10.2012, 19:55     Поиск количества битов для типа
Ответ Создать тему
Опции темы

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