2008-09-30 16 views
7

C ve C++'da derleyiciye, sayının sonuna bir 'l' koyarak bir sayının 'uzun' olduğunu söyleyebilirsin. örn. Uzun x = 0l;Bir bayt için sayı nasıl yazılır?

C# derleyicisine bir sayının byte olduğunu nasıl söyleyebilirim?

+0

ama byte olarak numarayı bildirerek aynı bir bayt sayısını döküm edilir? – Robert

cevap

9

C# language specification göre değişmez bir bayt belirtmek için bir yolu yoktur: Bir nesneye bir byte saklamak istiyorsanız

Yayınlamak var. Bayt almak için bayt aşağı atmanız gerekecek. Yapabileceğiniz en iyi şey bu gibi onaltılık belirttiğiniz ve aşağı atmak için muhtemelen: Cevapları mi

byte b = (byte) 0x10; 
+2

Bir "no-op" döküm mü? Ya da en azından * bazı zamanların * gerekli olduğu doğru mu? – Pacerier

9
byte b = (byte) 123; 

byte b = 123; 

aynı şeyi yapar halde. bunu yaparsanız

int a = 42; 
byte b = (byte) a; 
+0

tamsayı değişkeni, int'den bayt'a dolaylı olarak dönüştürülecektir; bu nedenle, sayıdan önce (bayt) dökmeniz gerekmez. Örneğin yukarıdaki örnek için mantığı kaçırmış olması durumunda. –

4

Unutmayın: o beklediğiniz gibi çalışmaya gitmiyor

byte b = (byte)300; 

Eğer bir değişken var.

+5

Bu ifadenin gerçeği benim beklentilerime bağlı ;-) – phoog

+3

@casademora, sonuç ne olacak? – Pacerier

+0

Bir bayt, yalnızca 0 ile 255 arasındaki sayıları kaydedebilir (1111 1111 = 255). Bu numara bir baytta depolanamaz, bu nedenle bir bayta "kesilir". –

1

MSDN, implicit conversion kullanıyor. byte type suffix göremiyorum, ancak açık bir yayın kullanabilirsiniz. Sadece 2 basamaklı onaltılık bir tamsayı (int) sabiti kullanıyorum.

1

Derleyiciye söylemeye gerek yoktur. Herhangi bir geçerli değeri bayt değişkenine atayabilir ve derleyici bununla uyumludur: bayt için son ek yoktur.

object someValue = (byte) 123; 
İlgili konular