Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> Bahasa C

Typecasting dalam C: Menguasai Konversi Implisit dan Eksplisit dengan Contoh Kode

Apa itu Typecasting dalam C?

Dalam C, typecasting—atau konversi data—adalah proses mengonversi nilai dari satu tipe data ke tipe lain. Ini adalah konsep dasar yang harus dikuasai oleh setiap programmer C.

Type Casting Implisit

Konversi tipe implisit (atau otomatis) terjadi ketika kompiler secara diam-diam mengonversi satu tipe data ke tipe lain tanpa intervensi pengembang. Ini hanya terjadi ketika konversi mempertahankan makna nilai dan tipe target dapat mewakili nilai sumber.

  1. Konversi implisit dilakukan secara otomatis selama penugasan, pemanggilan fungsi, dan operasi aritmatika.
  2. Ketika dua operand memiliki tipe yang berbeda, operand dengan peringkat lebih kecil dipromosikan ke tipe dengan peringkat lebih tinggi.

Pertimbangkan contoh ini:

#include<stdio.h> int main() { short a = 10; // short int b; // int b = a; // implicit cast printf("%d\n", a); printf("%d\n", b); return 0; }

Output:

10 10 

Kompiler mempromosikan nilai short ke int secara otomatis, memastikan tidak ada informasi yang hilang.

Typecasting dalam C: Menguasai Konversi Implisit dan Eksplisit dengan Contoh Kode

Promosi Karakter ke Integer

Ketika char terlibat dalam ekspresi aritmatika, kompiler mempromosikannya ke int menggunakan kodenya ASCII:

#include <stdio.h> int main() { int number = 1; char character = 'k'; /* ASCII 107 */ int sum = number + character; printf("Value of sum : %d\n", sum); return 0; }

Output:

Value of sum : 108 

Hierarki Konversi Aritmatika

Standar C mendefinisikan hierarki yang menentukan tipe target untuk aritmatika campuran. Jika operand berbeda setelah promosi karakter, kompiler mengonversi mereka ke tipe di atas dalam tabel berikut:

Typecasting dalam C: Menguasai Konversi Implisit dan Eksplisit dengan Contoh Kode

Hierarki Konversi Aritmatika

Contoh:

#include <stdio.h> int main() { int num = 13; char c = 'k'; /* 107 */ float sum = num + c; printf("sum = %f\n", sum); return 0; }

Output:

sum = 120.000000 

Di sini, c pertama dipromosikan ke int, lalu kedua operand menjadi float sebelum penjumlahan.

Poin Utama tentang Konversi Implisit

Type Casting Eksplisit

Cast eksplisit memaksa konversi yang tidak akan dilakukan secara otomatis oleh kompiler. Ini esensial saat Anda memerlukan representasi yang tepat, seperti memotong bagian pecahan atau mengonversi antara tipe yang tidak terkait.

Sintaksnya sederhana:

(type-name) expression

Contoh cast eksplisit dalam pembagian yang akan memotong hasilnya:

#include <stdio.h> int main() { int var1 = 10, var2 = 3; int result = var1 / var2; // 3, fraction lost int result2 = (int)((float)var1 / var2); // 3.333… cast to int -> 3 printf("result = %d\n", result); printf("result2 = %d\n", result2); return 0; }

Cast eksplisit juga berguna saat mengonversi antara tipe yang tidak terkait, seperti yang ditunjukkan di bawah ini:

#include <stdio.h> int main() { float a = 1.2; int b = (int)a + 1; // cast float to int printf("Value of a is %f\n", a); printf("Value of b is %d\n", b); return 0; }

Output:

Value of a is 1.200000 Value of b is 2 

Typecasting dalam C: Menguasai Konversi Implisit dan Eksplisit dengan Contoh Kode

Ringkasan

Pedoman Praktik Terbaik

Bahasa C

  1. Menguasai Konversi Tipe C#: Implisit, Eksplisit, Parse, dan Metode Convert
  2. Menguasai Konversi & Casting Tipe Python: Panduan Komprehensif
  3. Menguasai Type Casting Java: Dari Widening hingga Narrowing dan Lebih Lanjut
  4. Memanfaatkan Data di Internet of Reliability: Strategi untuk Manajemen yang Efektif
  5. Menguasai Switch-Case C++: Sintaks, Penggunaan, dan Contoh Praktis
  6. Menguasai Tipe Data Char C++: Deklarasi, ASCII, dan Teknik Konversi
  7. Struct C++ Dijelaskan dengan Contoh Praktis
  8. Menguasai std::list dalam C++: Sintaks, Fungsi & Contoh Praktis
  9. Panduan Lengkap Tipe Data C#: Nilai, Referensi, dan Pointer
  10. Memahami Konversi Tipe dalam C#: Pengubahan Tipe Implisit dan Eksplisit