Exercice Conversion gloutonne
Pour convertir en base \(2\) un entier écrit en base \(10\), nous pouvons utiliser l'algorithme glouton de rendu de monnaie, en utilisant les puissances de \(2\) successives comme valeurs des pièces.
Par exemple, pour obtenir la représentation binaire de \(43\), on peut utiliser les valeurs \(32\), \(16\), \(8\), \(4\), \(2\) et \(1\). On se limite à \(32\) car la puissance suivante, \(64\), est strictement supérieure à \(43\).
On procède alors ainsi :
- Pour \(43\) on doit prendre \(32\) , il reste \(11\),
- Pour \(11\) on ne peut pas prendre \(16\) (en effet \(16>11\)),
- Pour \(11\) on doit prendre \(8\), il reste \(3\),
- Pour \(3\) on ne peut pas prendre \(4\),
- Pour \(3\) on doit prendre \(2\), il reste \(1\),
- Pour \(1\) on doit prendre \(1\), il reste \(0\).
On obtient la représentation binaire en observant les différentes étapes : s'il est possible de prendre une puissance, on note un 1, si c'est impossible, on note un 0.
| Puissance de 2 | Possible ? | Bit correspondant | 
| \(32\) | Oui | 1 | 
| \(16\) | Non | 0 | 
| \(8\) | Oui | 1 | 
| \(4\) | Non | 0 | 
| \(2\) | Oui | 1 | 
| \(1\) | Oui | 1 | 
Dans la pratique, pour convertir « à la main » \(43\) en binaire, cela revient réaliser le tableau suivant :
| \(32\) | \(16\) | \(8\) | \(4\) | \(2\) | \(1\) | 
| 1 | 0 | 1 | 0 | 1 | 1 | 
On en déduit que \(43\) en décimal s'écrit 101011 en binaire.
 ✏️ À vous de jouer ... sur papier
Utiliser la méthode précédente pour convertir 100 en binaire.
Solution
on peut utiliser les valeurs \(64\), \(32\), \(16\), \(8\), \(4\), \(2\) et \(1\). On se limite à \(64\) car la puissance suivante, \(128\), est strictement supérieure à \(100\).
On procède alors ainsi :
- Pour \(100\) on doit prendre \(64\) , il reste \(36\),
- Pour \(36\) on doit prendre \(32\), il reste \(4\)
- Pour \(4\) on doit prendre \(4\), il reste \(0\)
On obtient la représentation binaire en observant les différentes étapes : s'il est possible de prendre une puissance, on note un 1, si c'est impossible, on note un 0.
| Puissance de 2 | Possible ? | Bit correspondant | 
| \(64\) | Oui | 1 | 
| \(32\) | Oui | 1 | 
| \(16\) | Non | 0 | 
| \(8\) | Non | 0 | 
| \(4\) | Oui | 1 | 
| \(2\) | Non | 0 | 
| \(1\) | Non | 0 | 
Dans la pratique, pour convertir « à la main » \(100\) en binaire, cela revient réaliser le tableau suivant :
| \(64\) | \(32\) | \(16\) | \(8\) | \(4\) | \(2\) | \(1\) | 
| 1 | 1 | 0 | 0 | 1 | 0 | 0 | 
On en déduit que \(100\) en décimal s'écrit 1100100 en binaire.
 
 
Travail à faire
Vous devez écrire une fonction binaire qui prend en paramètre un entier écrit en base \(10\), et renvoie la chaîne de caractères la plus courte possible (sans zéros inutiles) représentant sa conversion en binaire.
 
Exemples
Python Console Session>>> binaire(43)
'101011'
>>> binaire(32)
'100000'
>>> binaire(0)
'0'
>>> binaire(54321)
'1101010000110001'
 
 
Contraintes
Vous utiliserez obligatoirement un algorithme glouton qui met en oeuvre la méthode décrite dans cet exercice. 
L'utilisation de la fonction bin et du modulo (%) est interdite.
 
Compléter le script ci-dessous
.128013.12807340tc1mRwhpb.2DqiS:=-rk;+xf6[lPn àéeagd,_v)u7yè8*3EsA5o/(V]zC9050N0K0e0L0r0E0!0H0f0E0L0!0!0u010e0r0l010406050!0S0h0h0L0w0U040s0%0E0S120%0G0H020L0h0l0y0H0i0K1c0w0q0S0K0!050(191b1d1f170l04051K1D1N0(1K170N0r0Q0`0|0~100|0G0M0S0L0M0K0v0l0U0e0k1m0H0k0r0M0k0E1?0k0e15050=0m0E0K1W0}0 011=1@1_1@0e1 211}0e0w1L1.0`1i0!0l0L0G100o01231Y010B0@0K0G1q0K1}2l2n2s252v212y0h2A040a0H0F0w0%0l0%0!0r1l1n0:2j0w0w0K0f2V1D2C0G1L0(1.2+2f2h2g1~0N2E1Z0r0G2x2S1}1T1V0{242^2`0G0%2~1}0l2!1L2)2+3b182m1n302t340w1c0E1}0L1;2!0B10030P0P0f350K1_330%0v0g3C150H0g1D0L3c3f163e2D3h253j3l3n3p0K3r013t3v3x3z2{3C0v2q040H0o3I3K2n3M2)2@013R0L3m1L3o0k3q3s3u3w0:3#343%0Y3F0Y3-2(3L173;3P103@3_053{3}3X3 3!2_3$3D0c3F0c481E4a3N3g1X3Q0%3k3^3T3|3V3~3Z414n433D0$3F0$4t3b4b3f3=4f4D4j3Y403y4J3B3D0C3F0C4P4v4c4y4e4A3S3`3U3W4X4m3A3%0T3F0T4*3/4R3O4-3?4/4C4;4E4?4l4I4_3D0W3F0W4~2*504x31534B4g4i4F4k4H4Z5b0v0.3F0.5g3:4S4d5l4:4h4=4G4Y424#3C0d150g0d5y5i4T545n5F5q5H4!3%0g0g5M3H0(3J494 4w5R5m4V5p4@5a4o3C3)0g3,5%3.5h5+5B4U564W595s5=0g4504655P5}525 5E575G4^644q674s5`5)5|4,5k6c5o585r5I5Y4M674O6l4u5*6o3i5S5.6s5W5t0g4%674)6z4Q6a6p6E605/626u3D0g4{674}6N4+5A6b6R6d616t5X6W5d675f6#6B6%6Q5-6S6G6g4K3C5v675x6=6n6@6D6_6*6T6,5t0o5L047b5y1O391D2~2.0N2h2?5B4Y2}1U1L380K3a3L6m1L4Y7v2D0r0N103u2)5Y3T7C7E79642r2I0K7K6H7M2+5(6C250x150:0B7x6P2t0j3F7#7V4e0B150m2_0?2!7*742514040)7?516p15340h0m7=6A2*7$7^150R0t7x17847A1n7J017F3f3%3)5E8g6U6-3(7N2z7Q6|5J8l5`0H8y0H86107X040r7!8d8A7+3?7 0%81833b8I7@100%150u0u7x8Q7}2t0h0r155O8d8B017_8a8d8c3d3;8n0P7G3D668m7D8h7L6}450H7O8t5;8~1}8x8z978*8D2!0e0S0w0G8X8*0!3)021z0%0e0y0d9k0S9m0y8b7|8f8{8i2n3%6i8`92636}4q908s8|7R9F953J8/7w8;9x8?8j4L7I9R9K5J4M9H2J9D6V0v6w3-988J0G150l0S0r0~2n0f1B0P1k2w1C8H8*8T048W9}8J7_0D0+9u8)9Q7K8@0v6K9C9J8u3%4%9!7Paf935Jad968y8*9-040l9g8J9 a18P8*8#5Ma78:4S8=ab6Yae8o5t4{aj9$8paIap8Y5j2t8D0j1=21av8R8KataZ8Z259 020E9nay3LaS4T8L8N0Ka%aT87048-6Oa8aF9Rab6/aJ8}5J5daNal9Eb59M3*978zar9.9:9=0G9@0!9_12219|aEa(8S150n9va;040L0l0l2x0Nbv5B7_7{a~bra#aubHa_107_0RaD9Pa aa9T5u9VaO5t5vb7aK5=6 9*bdaq9,9.a^3=axb-5BaB7db:529 0Xb@7~a$8.bvaGbU5NbWb89%c2b!b45Y7cb(b*a!as9/9;0!9?0K0P1c0Ab{2tb/a2cd0m152HbD52bFcvb|cfbibkbm9{cy2tbOcna)150vcI10b=5$a}bq9wbT9z6W5!4;8=9X5Y5!c7cZcVbb9O3/5+c0cU5?c3b#6}5^8r9#c48pc?7TbcccbIas2!19a,0L0ecM01cpaz8J9i159q9sdd9n8Xb)8zc*85a98|ab65c:c86W8 91c_6I8_aR99150B4Ad6as0rd60%7(8E9fcqc cs040w2n1)cFa`bGcRbwcAchbjcjcldSbN150OdGcKd$01cOd,7_d)dLbMd7d+bL3=d.d_bE88a|4vd_c-0G5Y9B3ocYag6W9Gduc;5J0g9BaR9+cdbgcgcid*a0dDejcB9^9`bod/150Dd,dEeu04a6b~e1b0c19)e69We83C9ZebdreKbbdia:5B8D8Feo048082a@d=b.dc0Ma-eVdXeld|cw15d 5*eDcTe36WadeHbX64aieMc%3Cao3JeQehc 15d10Sd3d5e!5Bd8a/bfdO1Bf70=f9d9a!9 0zd6db04df0y0gfrbQc+dm9ye?3CaIe_dv64aMe}eJ6XePf2c~d?aseX8Ofdaw8UeVfOeZfkbI9 cLfa6bepdY9@fvdlbSdnc1b2fCec5Yb6fGamf;fJb)dz043y0!fVbRbI8,f)8e0He25Yb%f/eN0gbZf?b9g7f_f2fef6f8ema.3/eRf#ffd2fiemfnf!5kfpfr9p9ldgeCdVg63D7bdqe~gGc$eJgGc|f3d?9a0;9ddKfWfMf5fggkgC7w0(7z7g7u7i7r1D0e7lg+2;2,0L20g(0(7j1Jg45B2!0h0P0B0L0xcj0k661v1x1z1B0He/851Q3M1K0b0H0-0;0H3^0M4A2U0k2J0H0M0E0%1k1:0G0Jbk2T0e222X3w1b2x9@0w0H2mhHbohI1j0_0MdP0G0:0_e*dZ0_2X0o0Hes1Bbu820H0(160p2n0_0|0H0!1i9`1:382Q2S0J0K0O90ht0_0L0Q1m0_0f0w0J0JhZ2`0H1_0!hA0HhShIbhf%h8hX0H2f0rh`hT1d0H4A0N2!0`2Pek0G0e0Hh7h}0Sh i10Gip0w3w9d1A0H0IhI1d12hH2Xh.2v0Gbuhcg_hf0#1kiu2R0~0r7/1_0ei72xhZbn9;2niz057z2RbKg$iX0/1U3=1!1$1(1*1,1.1:271^1`1|g`522G2x2z150F1-1/gT7w7t8e5{7y3xg4g60o3EcXeIf@jtc#gd6ujy2r6e5VagjCc|f{7Zd,dI8Ae,6p7-047/2y0rfPfwa!cxjO3ia=eYez89g3c,eE9zjt8lg9cZj-c@akf:j;5U5:gej;gNbe8JeT8GgUbwfUglgm2*go5kb=8(dVd}a{j)fx9Sj,0v8_j/jGkjj=e`43jt8 jEj`jBknj}f`j gW9c9efo9jgA9ofugZjW7Bj+e3jte5g5jwj{0vea9Ij@kSjD6+j:kWc|dkjrkL3(9(gHkmeLkUc8jt9ZktkV9)dyb+atihciblh!bpfQflfSgvcGeveBcQg0cSf,kie^kPkp3Bjte|k.kZaik=k/acggfebKk2fbl2lr52d{l7kJl9fyk)fBldfDkq0vfFlikmaMllkZaQf1j~a!aVaXf gnlpema+e(l33Qj#jVk78*g2kIf*kKe=k)f.lDkVf=lIjx0vb6lLkmb2eglPf4k`ixcCk~d,9 iWkcgpbybAhRezdUl8dWj%kff+lAjtg8l:lmgcl?kRbZl`l@b%l}fLmflZbsenmyd-8$b?mBb_e)mhl,lakM5Kk+l@c6jA5Xjy5Lj_kVc2kxk8j!m0eqck0LcmmFltl0dMct2xmcexf$k|cDetjZa`bPm)04fZluk9mDcPe0gDk(jycWb3kZ5ZkolElf3Cc#mskRn9k#b n4c/jvlek)c?gKmO2qmUlmc{cbmYl!gqfhd4glkDdckFkHlxl+lzkhmLdpnmnbnodtmpkvdpntn8dxlOmweS15aW2wdDdNcum^d%7`m:m!iik}bn1Bmgm{02e%9tmBkaezha3Me;mKnokOe7mOkTc^mV9GnfnSefnXbdlVm{k63*lpk{hVm?n=n*d@04m6me5~9.2Qmcm`nHk%l-jyeGmmn8k-o7nuk;kYkm0gk@odgO3=k0mHn@a,0yohnx4el#lTnI3=l)oyj*oAe mNnglhoGn8lkoJmOf0c}ghk_gjgsogeVo`nBm{gum~2tgxkFftkFmInJ7GjylCo4nglHo.oKlKo;peggeQfek4o|mBfN8Mj$m{m}m+gVb}o%kgpa3Cl/pdnSl=pgmOl_pjpFpll~gP15f}oZjb5ko$n2mejs6~o+nSmopHngmrpKmRpYmXpmo_gXo{p2cJmAp;oXnzgYp@opp1pw3=p49r9ngzq1n`pzminKk)gMn7kmgJmQ4_j-mToap*qa5`k$o(o1j-n6kll@0ojznRqjnep)qf3(n6k^lQkAgSo}p/o o%g#jqg%2+g^1M04hf0-1m2f7;1w2xiziN9@iAiL34iDhjiF0_g 2Uieh,ia00hkhm1.hphrht0e1:2X2!hR0Sie220h1mjTh{g50E90001Biz2m0_hwhyqVr12jiG129c0KhK3oibidifhUbkrihYk~0H0J1z1U3^qX22iNh.rqhBh80l0r0Vru0Nr0q~rOrir30Gr50n0H0Z1n3V0B0;h|1:2fht0Q22h.rtrI3+h/9:0Qi=rEi/0@9;rnh|hJh/0r1r21ie1U9;0r1:qXrLi$iq0oiW1RqPi!2f22h:1j2VhI2S2Tg=h|rAry3w80r{ia3oi40Jd4s62W000Si9rHh91O3M2~i dQ1%1)1+jij61`291{2Ba!jd7OjgsQjkc+jm4wjoi@qLpA8j0Yjuqbf@s.qup$6us=kX78cZs_jIkz04jKoojMexjQjSqVm/oopra?j%n~qms,9zs.j.oDagthnaf:tlnUtk8qmXf{eUpqoYk5d6n|oopUe:n3l-s.kktjs;knnqgetFs`6{tInWo@oOnZffkBs#l%dakEq4q39sp8mm7Gs.o3kQs^kWtKt-o9qy3$t*lop.grqIp~lsp?t|52q0dep7l*ozo1s.oCpE5Xu7tmc8ubtptIoMn tDu6lnnNtnlnt/uauoqi4_s.o?tSgpr.nCn{n0t%g6s.pct,uqpfj?udlGtN6ftIlNo@f{n#aYtvn.e+p{a*oToVpnpsl$oia3e.uCk(s.pDuGutl^ucs|u;uftLu;p,pNdWok9@m$m(uXm*lUk_uyu4qnlAs.mlu9u:p#uJu?p(s{tqmuoNu|otuVdZuzp{b=5_m75kmGt9m;vpv7tfe3s=caqru_mPqvu:c6ust?mMnio0v9ndpZuqn9upvJqxvitInhnwuRlSe)u~d!m%lWn_tymDkbose-kevAq7t)nls:vGnsqevMnpvL43s=8wvlnY52oQuUpov2fqn_u!v5v)v0n}u+tE3CtGvcv nQs@vTkst=w2wlpMkyeip_p:t vvv3tXwyo~fjwBco15p}v4a!u19np6q4wjukeevSvJo6vftqwUu^t-wUu{wxl wawIp=wewyw+wMfXd^p{cewgd#v@mJvQoLwVv oFwYvZoIvYvGuhp-qDf|0^pRl(u*w{p9s-o*umuK6Ju=wZo:x5w$uvfKoWa#wGvqw,p^xvp0nDfqkFt#gBq6w|q8s=uFnnxJxmvZpixpvTuPx8l r.whppw@vyu w`wb0(0(v.15vtpVlyt(xh0gu.xLpCxNvGpJxQvJl|9Nnjwkgbw wuy0vVv vhtOvGvkuQs 9bqFuUxzqJi{s%g@7rg_0*9;1%ibsAq|r0382_0f13hBr0t6jU220t8Asxlv0N0v0m1kq{9-5U1{0e0l0!0tx%0jyT0n0f0!2v3y0N1$7C0K0n4A0M0n0G0,0(2x0(2_hAdP2$1U1B0(t61e0v0f1d0N0!0(2r2!0E4.2Q2xrn2r0=0w1)0e7E202n8D0-iPh8yzd14tseg@0;0?0^04.
 
  
  
                
              
             
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)