Python Program untuk menukar dua angka tanpa menggunakan variabel ketiga.
⚡ Ringkasan Cerdas
Menukarping Dua angka tanpa variabel ketiga bertukar nilai di tempatnya menggunakan penjumlahan dan pengurangan aritmatika.traction, operator XOR bitwise, atau trik aritmatika bitwise. Python juga dapat bertukar secara langsung dengan membongkar tuple.
Bagian di bawah ini membahas empat cara untuk melakukan pertukaran tanpa variabel sementara, ditambah dengan luapan aritmatika.
Dalam bahasa pemrograman, tukarping Artinya menukar nilai dua variabel. Variabel tersebut dapat berisi angka, string, daftar atau array, objek, dan lain sebagainya. Cara umum untuk menukar nilai adalah...ping adalah dengan menggunakan variabel sementara untuk menyimpan nilai. Misalnya,
Langkah-langkah umum swapping Dua angka tersebut adalah:
- Deklarasikan variabel sementara C
- Tetapkan nilai A ke C, artinya C = A. Sekarang C = 20
- Tetapkan nilai B ke A, Jadi A = 30
- Tetapkan nilai C ke B, Jadi B = 20, karena C bernilai 20.
Beginilah cara menukarping Hal ini dilakukan dengan bantuan variabel sementara, dan berlaku untuk bilangan bulat maupun bilangan pecahan.
Tukar menggunakan Persamaan Aritmatika
Seperti yang kita ketahui, pertukaranping Berarti menukar isi dari dua objek, bidang, atau variabel. Pertukaran menggunakan operasi aritmatika berarti melakukan pertukaran menggunakan persamaan matematika, yaitu penjumlahan dan pengurangan.traction.
Jika kita diberikan dua angka dan diminta untuk menukarnya tanpa menggunakan variabel sementara, maka dengan menggunakan tiga persamaan aritmatika, kita dapat menukar angka-angka tersebut.
Pseudokode untuk pertukaranping angka yang menggunakan operasi aritmatika:
A = A + B B = A - B A = A - B
Mari kita asumsikan kita memiliki dua angka, A = 20 dan B = 30.
Kondisi 1: SEBUAH = SEBUAH+B
Jadi, nilai A saat ini adalah 20+30 = 50.
Kondisi 2: B = AB
Sekarang, B = 50-30 = 20
Kita dapat melihat bahwa kita mendapatkan nilai A di B.
Kondisi 3: SEBUAH = AB
Terakhir, A = 50-20 = 30
A mempunyai nilai awal B.
Jadi, kami tinggal menukar nomornya.
Berikut adalah program untuk menukar dua angka dalam bahasa C.C++:
#include<stdio.h> int main() { int a, b; printf("Enter value of A: "); scanf("%d", & a); printf("Enter value of B: "); scanf("%d", & b); printf("A = %d, B = %d", a, b); a = a + b; b = a - b; a = a - b; printf("\nNow, A = %d, B = %d", a, b); }
Keluaran:
Enter value of A: 20 Enter value of B: 30 A = 20 , B = 30 Now, A = 30 , B = 20
Program di Python:
a = int(input("Enter value of A: ")) b = int(input("Enter value of B: ")) print("A = {} and B = {}".format(a, b)) a = a + b b = a - b a = a - b print("Now, A = {} and B = {}".format(a, b))
Keluaran:
Enter value of A: 20 Enter value of B: 30 A = 20 , B = 30 Now, A = 30 , B = 20
Sekarang di Python, kita bahkan tidak perlu melakukan operasi aritmatika. Kita bisa menggunakan:
a,b = b,a
Berikut adalah demonstrasi di mana a=20, b=30;
Tukar menggunakan Bitwise XOR Operator
Metode ini juga dikenal sebagai pertukaran XOR. XOR berarti eksklusif OR. Kita mengambil dua bit sebagai input untuk XOR dalam operasi bitwise ini. Untuk mendapatkan satu output dari XOR, hanya satu input yang harus bernilai 1. Jika tidak, outputnya akan bernilai 0. Tabel berikut menunjukkan output untuk semua kombinasi input A dan B.
Kita perlu mengetahui cara kerja operasi XOR untuk menukar dua angka menggunakan operasi bitwise. Berikut adalah tabel untuk XOR di mana A dan B adalah nilai input.
| A | B | A XOR B |
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
Jika dua input memiliki nilai yang sama, maka operasi XOR menghasilkan 0; jika tidak, 1. Untuk contoh ini, kita akan menggunakan operasi XOR 3. Dalam sebagian besar bahasa pemrograman, XOR dilambangkan dengan "^".
Mari kita asumsikan A=4 (dalam biner = 0100) dan B=7 (dalam biner, 0111)
Kondisi 1: SEBUAH = SEBUAH^B
| A | 0 | 1 | 0 | 0 |
| B | 0 | 1 | 1 | 1 |
| SEBUAH ^ B | 0 | 0 | 1 | 1 |
Sekarang, A = 0011 (dalam Biner).
Kondisi 2: B = A^B
| A | 0 | 0 | 1 | 1 |
| B | 0 | 1 | 1 | 1 |
| SEBUAH ^ B | 0 | 1 | 0 | 0 |
Jadi B = 0100 yang merupakan nilai biner awal dari A.
Kondisi 3: SEBUAH = SEBUAH^B
| A | 0 | 0 | 1 | 1 |
| B | 0 | 1 | 0 | 0 |
| SEBUAH ^ B | 0 | 1 | 1 | 1 |
Terakhir, A = 0111, yang merupakan nilai biner setara dengan B.
Program dalam C/C++:
#include<stdio.h> int main() { int a, b; printf("Enter value of A: "); scanf("%d", & a); printf("Enter value of B: "); scanf("%d", & b); printf("A = %d, B = %d", a, b); a = a ^ b; b = a ^ b; a = a ^ b; printf("\nNow, A = %d, B = %d", a, b); }
Keluaran:
Enter value of A:4 Enter value of B:7 A=4, B=7 Now, A=7, B=4.
Program di Python:
a = int(input("Enter value of A: ")) b = int(input("Enter value of B: ")) print("A = {} and B = {}".format(a, b)) a = a ^ b b = a ^ b a = a ^ b print("Now, A = {} and B = {}".format(a, b))
Keluaran:
Enter the value of A:10
Enter the value of B:15
A=10 and B=15
Now, A=15,B=10.
Menukar Numbers menggunakan Bitwise-Aritmatika
Metode ini sama dengan metode aritmatika, tetapi kita akan menggunakan operasi bitwise seperti AND, OR, dan komplemen untuk melakukan penjumlahan dan pengurangan.tracSebelum melanjutkan ke langkah-langkahnya, mari kita lihat sekilas arti kata "komplemen".
Komplemen 1 berarti mengubah semua angka 0 menjadi 1 dan angka 1 menjadi 0. Mari kita ambil contoh.
- Mari kita ambil contoh angka 23, sebuah bilangan desimal.
- Mengonversi ke biner memberi kita 10111. Hanya ada 5 bit, tetapi komputer menyimpan angka dalam 8, 16, 32, 64 … bit. Jadi mari kita tambahkan nol di depan biner. Ini tidak akan mengubah nilai asli angka tersebut. Jadi akan menjadi 10111. 00010111.
- Seperti yang kita ketahui, komplemen 1 berarti mengubah semua 0 menjadi 1 dan 1 menjadi 0, jadi melakukan komplemen 1 pada 00010111 memberikan 11101000.
Komplemen 1 ini direpresentasikan dengan simbol "~" di sebagian besar bahasa pemrograman. Meletakkan simbol ini sebelum nilai bilangan bulat atau nilai floating-point apa pun akan menghasilkan komplemen 1.
Dan komplemen 2 berarti menambahkan biner “1” ke komplemen 1. Jika kita melakukan komplemen 2 pada bilangan di atas:
- Biner = 00010111
- Komplemen 1 = 11101000
- Komplemen 2:
11101000
+ 1
11101001
Jadi komplemen 2 adalah 11101001. Ini adalah Biner untuk -23.
Ringkasnya, untuk melakukan komplemen 2 pada bilangan A, akan terlihat seperti:
Komplemen 2 dari A = (~A) + 1
Sekarang mari kita asumsikan A=8 (biner 00001000), B=10 (00001010)
Kondisi 1: SEBUAH = (A & B) + (A | B)
Ini setara dengan A = A + B.
A & B = 00001000 & 00001010 = 00001000
SEBUAH | B = 00001000 | 00001010 = 00001010
Sekarang, 00001000 + 00001010 = 00010010 (desimal 18)
Jadi A = 18
Kondisi 2: B = SEBUAH + (~B) + 1
Ini setara dengan B = AB
Di sini, B = A – B
Berdasarkan pembahasan di atas, jika kita perlu melakukan subtraction, kita melakukan komplemen 2 pada bilangan negatif lalu menambahkannya.
Jadi, -B = ~B + 1
Sekarang, B = 00010010 + (11110101) + 1 = 00001000
Nilai B setara dengan desimal 8 yang merupakan nilai awal.
Kondisi 3: SEBUAH = SEBUAH + (~B) + 1
Ini setara dengan A = AB
Sekarang, A = 00010010 + 11110111 + 1
A = 00001010 (setara dengan desimal 10)
Akhirnya, A mendapatkan nilai B. Dengan demikian, pertukaran tersebut berhasil.ping selesai.
Program dalam C/C++:
#include<stdio.h> int main() { int a, b; printf("Enter value of A: "); scanf("%d", & a); printf("Enter value of B: "); scanf("%d", & b); printf("A = %d, B = %d", a, b); a = (a & b) + (a | b); b = a + ~b + 1; a = a + ~b + 1; printf("\nNow, A = %d, B = %d", a, b); }
Keluaran:
Enter the value of A: 8 Enter the value of B:10 A=8, B=10 Now, A=10, B=8
Program di Python:
a = int(input("Enter value of A: ")) b = int(input("Enter value of B: ")) print("A = {} and B = {}".format(a, b)) a = (a & b) + (a | b) b = a + ~b + 1 a = a + ~b + 1 print("Now, A = {} and B = {}".format(a, b))
Keluaran:
Enter the value of A: 25 Enter the value of B: 25 A = 25 and B = 25 Now, A = 25 and B = 25
Apa itu Aritmatika Overflow?
Istilah overflow berarti melampaui batas. Overflow aritmatika berarti hasil dari operasi aritmatika apa pun melampaui rentang atau batas representasi angka arsitektur komputer. Misalnya, jika suatu angka dibagi dengan nol, angka tersebut menjadi tak terhingga, dan sistem bilangan komputer tidak dapat menampungnya dalam 32 atau 64 bit.
Representasi bilangan bulat dalam sistem 32-bit
Konsekuensi dari luapan aritmatika dapat berupa:
- Penjumlahan dua bilangan positif menjadi negatif, karena bit tanda bisa menjadi 1, yang berarti bilangan negatif.
- Penjumlahan dua bilangan negatif menjadi positif, karena bit tanda bisa menjadi 0, yang berarti bilangan positif.




