If variable data will be 32767, Break infinity loop. To use long type by printf is write like this %ld. To much interest in type data of c, I learn restart about it.
#include <stdio.h> int main(void){ long data = 1; int cnt = 1; while(1){ data = data * 2; printf("data = %ld\n",data); if(data => 32767){ break; }else{ cnt++; } } printf("cnt = %d\n",cnt); return 0; }