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

Pengecoran Ketik di C:Konversi Jenis, Implisit, Eksplisit dengan Contoh

Apa itu Typecasting di C?

Typecasting adalah mengubah satu tipe data menjadi yang lain. Ini juga disebut sebagai konversi data atau konversi tipe dalam bahasa C. Ini adalah salah satu konsep penting yang diperkenalkan dalam pemrograman 'C'.

Pemrograman 'C' menyediakan dua jenis operasi pengecoran tipe:

  1. Pengecoran tipe implisit
  2. Pengecoran jenis eksplisit

Pengecoran tipe implisit

Pengecoran tipe implisit berarti konversi tipe data tanpa kehilangan makna aslinya. Jenis typecasting ini penting ketika Anda ingin mengubah tipe data tanpa mengubah signifikansi nilai yang disimpan di dalam variabel.

Konversi tipe implisit dalam C terjadi secara otomatis ketika suatu nilai disalin ke tipe data yang kompatibel. Selama konversi, aturan ketat untuk konversi tipe diterapkan. Jika operan terdiri dari dua tipe data yang berbeda, maka operan yang memiliki tipe data lebih rendah secara otomatis diubah menjadi tipe data yang lebih tinggi. Jenis konversi jenis ini dapat dilihat pada contoh berikut.

#include<stdio.h>
int main(){
	short a=10; //initializing variable of short data type
	int b; //declaring int variable
	b=a; //implicit type casting
	printf("%d\n",a);
	printf("%d\n",b);
}

Keluaran:

10
10

  1. Dalam contoh yang diberikan, kami telah mendeklarasikan variabel tipe data pendek dengan nilai yang diinisialisasi sebagai 10.
  2. Pada baris kedua, kita telah mendeklarasikan variabel bertipe data int.
  3. Pada baris ketiga, kita telah menetapkan nilai variabel s ke variabel a. Pada baris ketiga konversi tipe implisit dilakukan sebagai nilai dari variabel s yang bertipe data pendek disalin ke dalam variabel a yang bertipe data int.

Mengonversi Karakter ke Int

Perhatikan contoh penambahan karakter yang didekodekan dalam ASCII dengan bilangan bulat:

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

Keluaran:

 Value of sum : 108

Di sini, compiler telah melakukan promosi bilangan bulat dengan mengubah nilai 'k' ke ASCII sebelum melakukan operasi penjumlahan yang sebenarnya.

Hierarki Konversi Aritmatika

Kompiler pertama-tama melanjutkan dengan mempromosikan karakter ke bilangan bulat. Jika operan masih memiliki tipe data yang berbeda, maka akan dikonversi ke tipe data tertinggi yang muncul pada diagram hierarki berikut:

Hierarki Konversi Aritmatika

Perhatikan contoh berikut untuk memahami konsepnya:

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

Keluaran:

 sum = 120.000000

Pertama-tama, variabel c akan dikonversi ke integer, tetapi kompilator mengonversi num dan c menjadi "float" dan menambahkannya untuk menghasilkan hasil 'float'.

Poin Penting tentang Konversi Implisit

Kami tidak dapat melakukan casting tipe implisit pada tipe data yang tidak kompatibel satu sama lain seperti:

  1. Mengonversi float ke int akan memotong bagian pecahan sehingga kehilangan arti nilainya.
  2. Mengonversi ganda ke float akan membulatkan angkanya.
  3. Mengonversi long int ke int akan menyebabkan penurunan bit orde tinggi yang berlebihan.

Dalam semua kasus di atas, ketika kita mengonversi tipe data, nilainya akan kehilangan artinya. Umumnya, hilangnya makna nilai diperingatkan oleh kompilator.

Pemrograman 'C' menyediakan cara lain untuk typecasting yaitu casting tipe eksplisit.

Pengecoran tipe eksplisit

Dalam konversi tipe implisit, tipe data dikonversi secara otomatis. Ada beberapa skenario di mana kita mungkin harus memaksa konversi tipe. Misalkan kita memiliki variabel div yang menyimpan pembagian dua operand yang dideklarasikan sebagai tipe data int.

 int result, var1=10, var2=3;
result=var1/var2;

Dalam hal ini, setelah pembagian dilakukan pada variabel var1 dan var2 hasil yang disimpan dalam variabel “result” akan berformat integer. Setiap kali ini terjadi, nilai yang disimpan dalam variabel "hasil" kehilangan artinya karena tidak mempertimbangkan bagian pecahan yang biasanya diperoleh dalam pembagian dua angka.

Untuk memaksa konversi tipe dalam situasi seperti itu, kami menggunakan casting tipe eksplisit.

Ini membutuhkan operator pengecoran tipe. Sintaks umum untuk operasi pengecoran tipe adalah sebagai berikut:

(type-name) expression

Di sini,

Mari kita menulis sebuah program untuk mendemonstrasikan bagaimana typecast dalam C dengan eksplisit type-casting.

#include<stdio.h>
int main()
{
	float a = 1.2;
	//int b  = a; //Compiler will throw an error for this
	int b = (int)a + 1;
	printf("Value of a is %f\n", a);
	printf("Value of b is %d\n",b);
	return 0;
}

Keluaran:

Value of a is 1.200000
Value of b is 2

  1. Kami telah menginisialisasi variabel 'a' bertipe float.
  2. Selanjutnya, kita memiliki variabel lain 'b' dari tipe data integer. Karena variabel 'a' dan 'b' memiliki tipe data yang berbeda, 'C' tidak akan mengizinkan penggunaan ekspresi seperti itu dan itu akan menimbulkan kesalahan. Dalam beberapa versi 'C', ekspresi akan dievaluasi tetapi hasilnya tidak diinginkan.
  3. Untuk menghindari situasi seperti itu, kami telah mengetik variabel 'a' dari tipe float. Dengan menggunakan metode casting tipe eksplisit, kami telah berhasil mengubah float menjadi integer tipe data.
  4. Kami telah mencetak nilai 'a' yang masih mengambang
  5. Setelah typecasting, hasilnya akan selalu berupa bilangan bulat 'b.'

Dengan cara ini, kita dapat mengimplementasikan casting tipe eksplisit dalam pemrograman C.

Ringkasan

Ingatlah aturan berikut untuk praktik pemrograman saat menangani tipe data yang berbeda untuk mencegah kehilangan data :


Bahasa C

  1. Konversi Tipe C#
  2. Konversi Jenis Python dan Pengecoran Jenis
  3. Pengecoran Tipe Jawa
  4. Apa yang Saya Lakukan dengan Data?!
  5. C++ Switch Case Statement dengan CONTOH
  6. Tipe Data C++ Char dengan Contoh
  7. Struktur C++ Dengan Contoh
  8. std::daftar di C++ dengan Contoh
  9. C# - Tipe Data
  10. C# - Konversi Jenis