LowByte highByte (MSB LSB ) Birleştirmek

Benzer konudan bir soru sormak istiyorum. int a=0xf445; int sonuc=highByte(a); burada sonuç değişkeni hangi değeri alır? Hada önemlisi bu hesaplamayı nasıl yaparız?

@hamzahaluk Sayı hex olarak yazıldığı için dönüşüm çok basit. 0x45 low byte, 0xf4 high byte. Hex sistemde her basamak 4 bite karşılık gelir. Yani sayıyı 8 bit sağa ötelersek soldaki (high) byte sağa gelmiş olur. unsigned int a = 0xf445; a >>= 8; Bu işlemden sonra a = 0xf4 olur. Veri türü unsigned ise sol tarafa 0 dolar. (0x00f4). Signed ise en soldaki (msb) bitin değeriyle doldurulur. Yani msb 0 ise 0’la, 1 ise 1’le. int a = 0xf445; a >>= 8; // a = 0xfff4 Son olarak bir veri türü kendisinden daha küçük bir türe atama yapılırsa low kısmı alınır. byte b = a; // b = 0xf4;

@amenofis Yüksek değerlikli bit olarak neden sadece f’yi almadıkta f4’ü aldık? Ayrıca satırları arduinoya yazıp serial ekrandan okuduğumda 244 değerini döndürüyor. Ama nasıl?

İlk soruyu anlamadım. f4 onluk sistemde 244 eder zaten.

@amenofis Tamamdır, şimdi çözdüm. Teşekkürler