1. JavaScript / Говнокод #10507

    +161

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    ISQ.Tools.RGBtoHex=function(c,b,a){
        return ISQ.Tools.toHex(c)+ISQ.Tools.toHex(b)+ISQ.Tools.toHex(a)
    };
    
    ISQ.Tools.RGBtoHex2=function(a){
        a=a.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
        return "#"+ISQ.Tools.toHex(a[1])+ISQ.Tools.toHex(a[2])+ISQ.Tools.toHex(a[3])
    };
    
    ISQ.Tools.toHex=function(a){
        if(typeof(a)==="string"){
    	a=parseInt(a)
        }
        if(typeof(a)!=="number"||a===0){
    	return "00"
        }
        a=Math.max(0,a);
        a=Math.min(a,255);
        a=Math.round(a);
        return "0123456789ABCDEF".charAt((a-a%16)/16)+"0123456789ABCDEF".charAt(a%16)
    };

    ОК, это последний на сегодня, просто сил нет...

    Запостил: wvxvw, 31 Мая 2012

    Комментарии (4) RSS

    • RGBtoHex2 - от создателей RGBtoHex, скоро во всех говнокодах страны!
      Ответить
    • ISQ.Tools.hexToRGB=function(a){
          var b={r:-1,g:-1,b:-1};
          a=(a.charAt(0)=="#")?a.substring(1):a;
          b.r=parseInt(a.substring(0,2),16);
          b.g=parseInt(a.substring(2,4),16);
          b.b=parseInt(a.substring(4,6),16);
          return b
      };

      Ах, печаль, печаль, какое упущение, вот же еще, в коллекцию, совсем забыл.
      Ответить
    • ISQ.Tools.getHex=function(g){
          var a=new ISQ.Tools.BigUInt(16);
          var c=new ISQ.Tools.BigUInt(g);
          var f=new Array();
          var e={value:null};
          var b=0;
          while(true&&++b<=100){
      	c=c.divide(a,e);
      	var d=e.value.toString();
      	switch(d){
      	case"":
      	    f.push("0");
      	    break;
      	case"0":
      	case"1":
      	case"2":
      	case"3":
      	case"4":
      	case"5":
      	case"6":
      	case"7":
      	case"8":
      	case"9":
      	    f.push(d);
      	    break;
      	case"10":
      	    f.push("A");
      	    break;
      	case"11":
      	    f.push("B");
      	    break;
      	case"12":
      	    f.push("C");
      	    break;
      	case"13":
      	    f.push("D");
      	    break;
      	case"14":
      	    f.push("E");
      	    break;
      	case"15":
      	    f.push("F");
      	    break
      	}
      	var d=c.toString();
      	if(!d||d==="0"){
      	    break
      	}
      
          }
          f.reverse();
          return f.join("")
      };

      Но я еще не добрался до реализации ISQ.Tools.BigUInt, но судя по всему она тоже на строках.
      Ответить

    Добавить комментарий