Xin chào, tôi muốn thêm các số 0 đứng đầu vào nhị phân để làm cho nó có 8 chữ số. Tôi đã thử sử dụng
2568 nhưng có vẻ như nó không hoạt động và tôi không biết cách sử dụng
2569 vì tất cả các câu trả lời tôi tìm thấy đều giữ nguyên
2570 mà tôi không muốn điều đó
Đây là những gì tôi đã thử
lenToBin = bin[payloadLength].replace["0b", ""]
if payloadLength == 30 or payloadLength == 31:
binResult = lenToBin.zfill[3]
else:
binResult = lenToBin.zfill[2]
Để xử lý hiệu quả hơn các định dạng chuỗi phức tạp, Python đã bao gồm phương thức format[]. Trình định dạng chèn một hoặc nhiều trường thay thế và chỗ dành sẵn vào một chuỗi bằng cách sử dụng lệnh str. hàm định dạng và một cặp dấu ngoặc nhọn []
Python3
2571
2572______773
2574
2575
2572
2577
001 000100
2571
2572____13
2574
2575
2572
001 000107
001 000100
đầu ra
001 00010
Thêm các số 0 đứng đầu vào số bằng chuỗi f
Tiền tố chuỗi bằng chữ “f” để có chuỗi f. Bản thân chuỗi có thể được chuẩn bị tương tự như cách str. định dạng sẽ được sử dụng []. Chuỗi F cung cấp một phương pháp rõ ràng và thiết thực để định dạng các biểu thức python bên trong chuỗi ký tự
Giải pháp 1. Một cách tiếp cận ngây thơ là chuyển đổi không. thành dạng nhị phân của nó và sau đó đếm số không. số 0 đứng đầu. Nó sử dụng các hoạt động phân chia đắt tiền.
C++
2583
2584
2585
2586
250
251
252
253
254
253
256
257
258
259
258
001 0001071
258
253
001 0001074
001 0001075
001 0001076
258
253
001 0001079
258
251
252
258
257
255
256
255
258
258
001 0001060
258
001 0001062
001 0001063
001 0001060
001 0001065
253
001 0001067
257
258
253
001 0001061
258
001 0001063
258
001 0001062
001 0001066
001 0001060
Java
001 0001068
2584
25830
25831
257
25833
25834
25835______7836
25837
252
25833
253
25841
253
256
257
258
259
258
001 0001071
258
253
25851____7836
25837
258
253
25856______7857
25837
258
251
25861
25862
25863
25862______7865
25857
25867
258
257
255
2501____7862
2503
255
258
258
001 0001060
258
001 0001062
001 0001063
001 0001060
2512
2513
25833
2515
2516
257
258
253
2520
2521
25837
258
2524
001 0001060
001 0001060
2527
Python3
2528
2529
2530
2531
2532
2533
2534
258
258
2537
258
2539
258
2541______642
2543
258
2545______642
25857
258
251
25861
25862
2552
2553
25862
2555
2542
2542
25857
2559
255
2561____642
2563
25862
25867
255
2545____668
2542
25862
258
001 0001062
2545
2574
2561
2542
2521
2578
2579
2580
2581
C#
2582
2584
2586
2585
25830
25831
257
25833
25834
2591
2592
2593
25833
253
25841
253
256
257
258
001 00010701
258
001 00010703
258
253
001 00010706
258
253
001 0001079
258
251
001 00010712
258
257
255
256
255
258
258
001 0001060
258
001 0001062
001 0001063
001 0001060
2512
2513
25833
2515
001 00010729
257
258
253
001 0001061
258
001 00010735
001 0001060
001 0001060
001 00010738
Javascript
001 00010739
001 00010740
2584
001 00010742
252
001 00010744
001 00010745
257
258
259
258
001 0001071
258
001 00010752
258
001 00010754
258
251
001 00010712
258
257
255
256
255
258
258
001 0001060
001 00010766
258
001 0001062
001 0001063
001 0001060
2512
001 00010772
001 00010773
258
001 00010775
001 00010776
Đầu ra
25
Độ phức tạp về thời gian. O[1]
Không gian phụ trợ. Ô[1]
Giải pháp 2. Một cách tiếp cận hiệu quả là sử dụng thao tác dịch chuyển phải Bitwise để đạt được điều tương tự. Các bước trong thuật toán là.
Gọi x là số của chúng ta. thì
001 000107
Cách tiếp cận trên chỉ thực hiện trong 12 đến 20 lệnh
C++
2583
2584
2585
2586
250
251
252
253
25841____63
256
257
258
001 00010790
258
253
001 00010793
258
001 00010795
258
001 00010797
001 00010798
255
2500
255
2502
258
001 0001060
258
2506
258
001 00010797
001 00010798
255
2511
255
2502
258
001 0001060
258
2517
258
001 00010797
001 00010798
255
2522
255
2502
258
001 0001060
258
2528
258
001 00010797
001 00010798
255
2533
255
2502
258
001 0001060
258
2539
258
001 00010797
2542
255
001 0001062
2545
258
001 0001062
2548
001 0001060
001 0001065
253
001 0001067
257
258
253
001 0001061
258
001 0001063
258
001 0001062
001 0001066
001 0001060
Java
001 0001068
2584
2565
2566
25830
2568
258
252
25833
253
25841
253
256
257
258
253
2579
258
253
2582
2543
25837
258
2586
2587
25837
258
001 00010797
2591____7857
2593
255
2595____687
25837
255
2502
258
001 0001060
258
2586
25836
25837
258
001 00010797
2591____7857
2593
255
2595
25836
25837
255
2502
258
001 0001060
258
2586
001 00010621
25837
258
001 00010797
2591____7857
2593
255
2595
001 00010621
25837
255
2502
258
001 0001060
258
2586
001 00010638
25837
258
001 00010797
2591____7857
2593
255
2595
001 00010638
25837
255
2502
258
001 0001060
258
2586
25862
25837
258
001 00010797
2591____7857
25867
255
001 0001062
001 00010664
001 00010638
25837
258
001 0001062
2548
001 0001060
001 0001065
258________ 613 ________ 7833 ________ 615 _______ 3676
258
253
2520
2521
25837
_______68____3683
258
001 0001060
001 00010686
001 0001060
Python3
001 00010688
001 00010689
001 00010690
2533
2534
258
001 00010694
2542
2543
25837
258
001 00010699
2542
001 00010601
2587
25837
258
001 00010797
001 00010606______642
25857
2559
255
001 00010694
2542
001 00010694
2553
2587
25837
255
2561____642
2579
258
001 00010699
2542
001 00010601
25836
25837
258
001 00010797
001 00010606______642
25857
2559
255
001 00010694
2542
001 00010694
2553
25836
25837
255
2561____642
2579
258
001 00010699
2542
001 00010601
001 00010621
25837
258
001 00010797
001 00010606______642
25857
2559
255
001 00010694
2542
001 00010694
2553
001 00010621____7837
255
2561____642
2579
258
001 00010699
2542
001 00010601
001 00010638
25837
258
001 00010797
001 00010606______642
25857
2559
255
001 00010694
2542
001 00010694
2553
001 00010638
25837
255
2561____642
2579
258
001 00010699
2542
001 00010601
25862
25837
258
001 00010797
001 00010606______642
25857
2559
255
001 0001062
001 00010694
2553
001 00010638
25837
258
001 0001062
001 00010694
2553
258312
258313
2533
258315
258
2561____642
2521
25837
258
2578
2579
001 00010797
258325
2542
2542
258328
258329
258
001 0001067
C#
2582
2584
2586
2585
25830
25831
257
258339
258340
25833
253
25841
253
256
257
258
253
2579
258
253
001 00010793
258
001 00010795
258
258
001 00010797
2542
258
257
255
2500
255
2502
258
001 0001060
258
2506
258
258
001 00010797
2542
258
257
255
2511
255
2502
258
001 0001060
258
2517
258
258
001 00010797
2542
258
257
255
2522
255
2502
258
001 0001060
258
2528
258
258
001 00010797
2542
258
257
255
2533
255
2502
258
001 0001060
258
2539
258
258
001 00010797
2542
255
001 0001062
2545
258
001 0001062
2548
001 0001060
2512
25833
2513
2515
258426
257
258
253
001 0001061
258
001 00010735
001 0001060
001 0001060
258435
PHP
258436
258437
2584
252
001 00010744
25841
258442
25867
257
258
258446
25837
258
258449
258450
258
258446
2542
258442
258455
258
001 00010797
258458
258446
258460
258
257
255
258449
2542
258449
258467
255
258442
2542
258446
25837
258
001 0001060
258
258446
2542
258442
258479
258
001 00010797
258458
258446
258460
258
257
255
258449
2542
258449
258491
255
258442
2542
258446
25837
258
001 0001060
258
258446
2542
258442
258503
258
001 00010797
258458
258446
258460
258
257
255
258449
2542
258449
258515
255
258442
2542
258446
25837
258
001 0001060
258
258446
2542
258442
258527
258
001 00010797
258458
258446
258532
255
258449
2542
258449
258537
255
258442
2542
258446
25837
258
001 0001060
258
258446
2542
258442
258549
258
001 00010797
258458
258446
258460
255
001 0001062
258449
258537
258
001 0001062
258449
2553
258442
25837
001 0001060
2512
258442
258568
258569
25841
258442
2503
258573
258574
Javascript
001 00010739
001 00010740
2584
001 00010766
252
001 00010744
001 00010745
257
_______68____78584
_______68____78586
258
001 00010795
258
001 00010797
001 00010798
255
2500
255
2502
258
001 0001060
258
2506
258
001 00010797
001 00010798
255
2511
255
2502
258
001 0001060
258
2517
258
001 00010797
001 00010798
255
2522
255
2502
258
001 0001060
258
2528
258
001 00010797
001 00010798
255
2533
255
2502
258
001 0001060
258
2539
258
001 00010797
2542
255
001 0001062
2545
258
001 0001062
2548
001 0001060
001 0001065
001 00010772
001 00010773
258646
001 00010776
Đầu ra
25
Độ phức tạp về thời gian. O[1]
Không gian phụ trợ. Ô[1]
Giải pháp 3. Sử dụng GCC __builtin_clz[x]. Hàm này dùng để đếm số 0 đứng đầu của số nguyên trong đó clz là viết tắt của đếm số 0 đứng đầu. Nó đếm một số số 0 trước lần xuất hiện đầu tiên của một [bit thiết lập]
C
258648
253
001 0001067
257
258
253
258654
258655
258
258657
258458
255____78660____78661
_______65____78663
258
001 0001062
001 0001066
001 0001060
Đầu ra
001 000106
Độ phức tạp về thời gian. O[1]
Không gian phụ trợ. Ô[1]
Giải pháp 4. Sử dụng các chức năng được xác định trước
Trong Java, phương thức numberOfLeadingZeros[] của lớp Integer và Long được sử dụng để đếm các số 0 đứng đầu của số nguyên