#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main(int argc, const char * argv[])
{
{
long max = 0;
for(long cur = 1;;)
{
max = cur;
cur = (cur<<1) + 1;
if (cur <= max) break;
}
printf("long max = %ld\n",max
); }
{
char max = 0;
for(char cur = 1;;)
{
max = cur;
cur = (cur<<1) + 1;
if (cur <= max) break;
}
printf("char max = %d\n",max
); }
{
unsigned char max = 0;
for(unsigned char cur = 1;;)
{
max = cur;
cur = (cur<<1) + 1;
if (cur <= max) break;
}
printf("char max = %d\n",max
); }
}
I2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPHN0cmluZy5oPgoKCmludCBtYWluKGludCBhcmdjLCBjb25zdCBjaGFyICogYXJndltdKQp7CiAgICB7CiAgICAgICAgbG9uZyBtYXggPSAwOwogICAgICAgIGZvcihsb25nIGN1ciA9IDE7OykKICAgICAgICB7CiAgICAgICAgICAgIG1heCA9IGN1cjsKICAgICAgICAgICAgY3VyID0gKGN1cjw8MSkgKyAxOwogICAgICAgICAgICBpZiAoY3VyIDw9IG1heCkgYnJlYWs7CiAgICAgICAgfQogICAgICAgIHByaW50ZigibG9uZyBtYXggPSAlbGRcbiIsbWF4KTsKICAgIH0KICAgIHsKICAgICAgICBjaGFyIG1heCA9IDA7CiAgICAgICAgZm9yKGNoYXIgY3VyID0gMTs7KQogICAgICAgIHsKICAgICAgICAgICAgbWF4ID0gY3VyOwogICAgICAgICAgICBjdXIgPSAoY3VyPDwxKSArIDE7CiAgICAgICAgICAgIGlmIChjdXIgPD0gbWF4KSBicmVhazsKICAgICAgICB9CiAgICAgICAgcHJpbnRmKCJjaGFyIG1heCA9ICVkXG4iLG1heCk7CiAgICB9CiAgICB7CiAgICAgICAgdW5zaWduZWQgY2hhciBtYXggPSAwOwogICAgICAgIGZvcih1bnNpZ25lZCBjaGFyIGN1ciA9IDE7OykKICAgICAgICB7CiAgICAgICAgICAgIG1heCA9IGN1cjsKICAgICAgICAgICAgY3VyID0gKGN1cjw8MSkgKyAxOwogICAgICAgICAgICBpZiAoY3VyIDw9IG1heCkgYnJlYWs7CiAgICAgICAgfQogICAgICAgIHByaW50ZigiY2hhciBtYXggPSAlZFxuIixtYXgpOwogICAgfQp9Cgo=