Nombre de bits

Un ordinateur manipule des nombres écrits en binaire : uniquement avec les chiffres « \(0\) » et « \(1\) ». Par exemple le nombre \(26\) s'écrit \(11010\) en binaire.

Chaque « \(0\) » et « \(1\) » d'une écriture binaire est appelé bit. Ainsi, le nombre \(26\) s'écrit en binaire sur \(5\) bits.

Pour savoir combien de bits sont nécessaires pour écrire en binaire un nombre entier strictement positif on compte le nombre de divisions euclidiennes par \(2\) nécessaires pour obtenir un quotient nul.

En partant de \(26\) on a :

  • \(26 = 2 \times \mathbf{13} + 0\) ;
  • \(13 = 2 \times \mathbf{6} + 1\) ;
  • \(6 = 2 \times \mathbf{3} + 0\) ;
  • \(3 = 2 \times \mathbf{1} + 1\) ;
  • \(1 = 2 \times \mathbf{0} + 1\).

Comme on peut le voir, \(5\) divisions euclidiennes ont été nécessaires pour passer de \(26\) à \(0\) : \(26\) s'écrit donc sur \(5\) bits en binaire.

On rappelle que l'opérateur // permet d'obtenir le quotient de deux nombres : 13 // 2 est évalué à 6.

Écrire la fonction nb_bits qui prend en argument un nombre entier strictement positif et renvoie le nombre de bits nécessaires à son écriture en binaire.

Contrainte

On interdit d'utiliser la fonction bin !

Exemples
>>> nb_bits(1)
1
>>> nb_bits(2)
2
>>> nb_bits(3)
2
>>> nb_bits(4)
3
###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 10/10
.128013s3_èufvIy naêS1me(P24C:twih)6o;bcdg/T0lqp!.rL-,=+Nk5Rxé050I0r0y0m0A0N0b0k0H0N0m0b0b0W010y0A0P010406050b0f0q0q0m0S0j040o0E0N0f0{0E0l0k020m0q0P0F0k0#0r150S0O0f0r0b050K12141618100P041w1D051G0K1G1I1D100I0A0h0:0=0@0_0B0A0J0B0N1W0B0y0~050+0G0N0r1R0?0^011V1X1Z1X0y1)1+1%0y0G0E0I181(0S1E0y0B0:1b0b0P0m0l0_0u011-1T010g0-0r0l1j0r1%282a2f1/2i1+2l0q2n040a0k0t0S0E0P0E0b0A1e1g0)260S0S0r0H2I1w2p0l1E0K242U0y2221230I2r0_1Z0l2k2F1%1O1Q0;1.2(0A2*0l1~1P1%0P2N1E2S2U2 11291g2:2g2^0S150N0~0p2R330 322q351/37390~0u3d2a3f2S2%013k0m3a040c3o2T103r3i0_3u3w0v3z3q333s3F0~0!3I3B3K3D3t0E383v0~0D3I1F2}1w2.2X0I2#3s0H1~2x0(1P1E2|0r2~3e3Z3,0)3@3h1S1/0Z0~0)0g3Z3C3~0_0z0~0k443R463t0g0~0l0G0d0G2H1v1x3^452;010}040s4b3}4q0l4g4v344d4s0C0x3P0k4H4a4p360~3,1k0y0r0f0S3I4J4c4q0E0~0W4T3g4B4q0q0A0~0M4G4I4#3s40040z1V1+4!4K3j4z4n3p4U4w2g4X040Q4Z4|2T4~4$2g4(4*4A3s4s4F550 4I5i573L4{2 5k3S51545n4.3S4y040l4^4V500~0K0K5y4 1/5a043n5g065j4-4_3E4M0E4O4Q4S5g5o4d5q5E584`044N0P4P4R5Z3s510X5+3S5H3c5K5i5t4d4:2N0y4R5x5V5^4x5Q5S5*5K1w3`3?3!680K3%1w0y3)6d2Z2V1}1 2X0m1*6a3%1C3|5!0_2N0q0d0g0m0Z0r0d0B0c0~1o1q1s1u0k5f311J3f1D0i0N0k0b000m0J2H0k0I1f0H6X1,5%4P0S260q4k2k6#6X1P0A2G1f0/4Q0;0A1O2k2*0/0b1f0y0k0l0%0H1u0b0,2N0/0m0h2a716H0k1+0k1s0E0{2k712*6R0E6W0l0f0N0R1F6N040L0S0m0I0f2H1,6-0t0j241f0:0*4P260l1O2I6#0h0A7m6J4a673s1;1Y1!1$6r4/0~4=2j5/4d5v5~5s5O0151537-4%4)044+5g602g5e3Z0K67040V0k7K3,0l0{7s1,0+8a7i1t5W4q162H0B154P0$0~090s0l090C4T0l001u71112Y1f0J04290/7s0N2R8C0l8E7v6M6q0w0*0k3v0J3U8l2w0k0g6Z2I7o6Y0l6!2E4R0k0y0E0f0/1+6@8a7U0S6~2Y0A2P1p7V2E2G0{0g0b0R0k0T0m0k0h0r8_0A880A0U0)0@8/0/0P9b2w712K7h2N7P2N8Z8#9d0l2*6Q8+6)8.8:7g6I7m8^9k2F2H0A937W7 1/8k248n0r8p048r0M8u4T5%0S6;8O1M3/2/4d7!1?1#2o5z2s2j2v2x2z0o0H9#5(2A7I0B1f3Z3=6r303^849O0_4:425c3S48044a7~7=0l4f5w4i4k0y4m317=4s4uag9:5P5wab4C0~4E4,4Ha73t5m3e8i5A045raGaD7/7_aI5CaO5G7{5J5n5jaD0H0p0~030k0f8%6:6=2J0e8;1,0I0%290S718S0M0k5C0k0u990m1d0k7}2 5L5NauaE5$5R5(5TaR0_5Y5 7=5;4Tb45F0_aYa!871g988(6!0p0kam0k4(0l0A0q138g7q8g000-8T2M1P0raBaH3 7*4?bJbeb5aNbQbj7?0~7^bT6s015Hb14ob5815?5MbLav7:aL7=bd7;bRaF4}aD51aQbY3s5HaU3eb35MaM62b964b=bUb;b/b?b7635Uc7bZ5-bbb!7{5=b25@7=5`0*5}ci5v6%ba65833-2Ua23$3:6q0Y7k6?0k2k2i1g1sbE6Q8z8T8:2G0k902G6n6.0S0%6 0f0I9t75cS2C1*0e8Y6-1d0-6;7da$7o8!8)7RcX0H4R2G9a0k0s1s0A6R6T0P9l0N7h0rd70r0U0q0n2w0C6J7w1N1P7Z1!9-7%aD2t2k2m0~9^9`0|717H7Jb.3p1H3#6L31a6co410r43atbUadafapbRaj4h4j4lax4qardV4LawdLbZ4D6Kc0cnb54:9Lcsb@56b_0~020N0y0Fcib~dY1/b)cmb+aDcp5|0SdAd:bfckbKe10~d90bbPdPbUd~d)e0dH045{crb|5:e8eo5X0~5.er61akdTand|0_dXd#5ld!cf5,5B5Dev59aTeA4raz3P66cy692U6p1H048R1^1,8!387t0m7R2Y7B7D9o4Q0$0:9 ed0/5f9(7t3f1Z04bF8x9T6;7N7f0)0fe/2^6+79cH8@9b9I919L6~00749#7c8f126)a%6R4Q6Qbu0xb,019Q8me(9T8q0s9X8v5V8SaDfv9S9U8r0p9Y5g0V1we{10e{0Nfgdve31,4k2l0A9t2K0H0B0m7f8B2C8M04a~2Yee8L8E725R0G9t9G9b7274767E0kbsbu2K0P1c0/7f75da6.6 cK0f7k7U8fa;ftfGfxfI0s0ufL2 8OfP1we_106b0*0,0.04.