grenzwerte eines datentyps bestimmen ??



  • hi,
    ich möchte gerne wissen, ob bzw. wie es mit der MFC möglich ist,
    die grenzwerte eines datentyps zu bestimmen.

    zb. long -2.7xx.xxx.xxx bis +2.7xx.xxx.xxx



  • LONG_MAX 2147483647 Maximum (signed) long value
    LONG_MIN –2147483647–1 Minimum (signed) long value

    gibt es für jeden DatenTyp
    Gruß



  • oder so z.b:

    template<typename type>
    type min_val() {
    	type result = 0;
    	// checke ob es signed oder unsigned ist
    	type val = 0;
    	--val;
    	if(val<0)
    	{
    		// signed
    		result |= (1<<(sizeof(result)*8-1));
    	}
    	return result;
    }
    
    template<typename type>
    type max_val() {
    	type result = 0;
    	memset(&result,0xFF,sizeof(result));
    	// checke ob es signed oder unsigned ist
    	type val = 0;
    	--val;
    	if(val<0)
    	{
    		// signed
    		result ^= (1<<(sizeof(result)*8-1));
    	}
    	return result;
    }
    
    void func()
    {
       char min_char = min_val<char>();
       char max_char = max_val<char>();
       unsigned long min_ulong = min_val<unsigned long>();
       unsigned long max_ulong = max_val<unsigned long>();
    }
    


  • std::numeric_limits


Anmelden zum Antworten