You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
int türden bir değerin çeşitli sistemlerde karşılığının String olarak elde edilmesi
/*---------------------------------------------------------------------------------------------------------------------- int türden bir değerin çeşitli sistemlerde karşılığının String olarak elde edilmesi----------------------------------------------------------------------------------------------------------------------*/packageorg.csystem.app;
importorg.csystem.util.Console;
publicclassApp {
publicstaticvoidmain(String[] args)
{
intval = 10;
Console.writeLine(Integer.toString(val));
Console.writeLine(Integer.toString(val, 2));
Console.writeLine(Integer.toHexString(val));
Console.writeLine(Integer.toBinaryString(val));
Console.writeLine(Integer.toOctalString(val));
}
}
long türden bir değerin çeşitli sistemlerde karşılığının String olarak elde edilmesi
/*---------------------------------------------------------------------------------------------------------------------- long türden bir değerin çeşitli sistemlerde karşılığının String olarak elde edilmesi----------------------------------------------------------------------------------------------------------------------*/packageorg.csystem.app;
importorg.csystem.util.Console;
publicclassApp {
publicstaticvoidmain(String[] args)
{
longval = 4000000000L;
Console.writeLine(Long.toString(val));
Console.writeLine(Long.toString(val, 2));
Console.writeLine(Long.toHexString(val));
Console.writeLine(Long.toBinaryString(val));
Console.writeLine(Long.toOctalString(val));
}
}
Bitsel İşlemler
/*---------------------------------------------------------------------------------------------------------------------- Bitsel İşlemler Bitsel işlemlerin daha iyi anlaşılabilmesi için öncelikle bir tamsayının (short, byte, int, long ve char) bitlerini ekrana basan metotlar yazıp kullanacağız. Metotların kodlarını aşağıda bulabilirsiniz.----------------------------------------------------------------------------------------------------------------------*/
Bir sayının bitlerini ekrana bastıran metodun bitsel operatör kullanmadan yazımı
/*---------------------------------------------------------------------------------------------------------------------- Bir sayının bitlerini ekrana bastıran metodun bitsel operatör kullanmadan yazımı----------------------------------------------------------------------------------------------------------------------*/packageorg.csystem.app;
importorg.csystem.util.Console;
importjava.util.Arrays;
publicclassApp {
publicstaticvoidmain(String[] args)
{
for (;;) {
intval = Console.readInt("Bir sayı giriniz:");
Util.writeBits(val);
if (val == 0)
break;
}
}
}
classUtil {
publicstaticvoidwriteBits(intval)
{
StringvalStr = Integer.toBinaryString(val);
char [] c = newchar[32 - valStr.length()];
Arrays.fill(c, '0');
Console.writeLine(newStringBuilder().append(c).append(valStr).toString());
}
}
Bir sayının bitlerini ekrana bastıran metodun bitsel operatör kullanmadan yazımı
/*---------------------------------------------------------------------------------------------------------------------- Bir sayının bitlerini ekrana bastıran metodun bitsel operatör kullanmadan yazımı----------------------------------------------------------------------------------------------------------------------*/packageorg.csystem.app;
importorg.csystem.util.Console;
importjava.util.Arrays;
publicclassApp {
publicstaticvoidmain(String[] args)
{
for (;;) {
intval = Console.readInt("Bir sayı giriniz:");
Util.writeBits(val);
if (val == 0)
break;
}
}
}
classUtil {
publicstaticvoidwriteBits(intval)
{
StringvalStr = Integer.toBinaryString(val);
char [] c = newchar[32 - valStr.length()];
Arrays.fill(c, '0');
Console.writeLine(String.valueOf(c) + valStr);
}
}
Bir sayının bitlerini ekrana bastıran metodun bitsel operatör kullanmadan yazımı
Java'da bir tamsayının bitleri üzerinde işlem yapan operatörler
/*---------------------------------------------------------------------------------------------------------------------- Java'da bir tamsayının bitleri üzerinde işlem yapan bir grup operatör vardır: ~ ----> bitwise not << ----> left shift >> ----> right shift (signed) >>> ----> unsigned right shift & ----> bitwise and ^ ----> bitwise xor | ----> bitwise or >>=, <<=, >>>=, &=, |=, ^= ----> augmented assignment bitwise operators Burada operatörler öncelik sıralarına göre yazılmıştır. Bu operatörler gerçek sayı türleri ile kullanılamaz. Bir kaç istisnası dışında boolean türü ile de kullanılamaz----------------------------------------------------------------------------------------------------------------------*/
Bitsel değil (not) operatörü tek operandlı (unary) önek (prefix) durumunda operatördür.
/*---------------------------------------------------------------------------------------------------------------------- Bitsel değil (not) operatörü tek operandlı (unary) önek (prefix) durumunda operatördür. Operatör öncelik tablosunun ikinci seviyesinde bulunur. Bu operatör operandı olan tam sayının bitleri üzerinde 1'e tümleme (one's complement) yaparak bir değer elde eder. Yani operandı olan sayının 1(bir) olan bitlerini 0(sıfır), 0(sıfır) olan bitlerini 1(bir) yapar. Bu operatörün yan etkisi yoktur----------------------------------------------------------------------------------------------------------------------*/packageorg.csystem.app;
importorg.csystem.util.BitwiseUtil;
importorg.csystem.util.Console;
publicclassApp {
publicstaticvoidmain(String[] args)
{
while (true) {
varval = Console.readInt("Bir sayı giriniz:");
varresult = ~val;
Console.write(val + "->");
BitwiseUtil.writeBits(val);
Console.write(result + "->");
BitwiseUtil.writeBits(result);
if (val == 0)
break;
}
Console.writeLine("Tekrar yapıyor musunuz?");
}
}
Bir tamsayıyı, sola bitsel olarak 1 pozisyon kaydırmak o sayıyı iki çarpmak demektir
/*---------------------------------------------------------------------------------------------------------------------- Bir tamsayıyı, sola bitsel olarak 1 pozisyon kaydırmak o sayıyı iki çarpmak demektir----------------------------------------------------------------------------------------------------------------------*/packageorg.csystem.app;
importorg.csystem.util.Console;
publicclassApp {
publicstaticvoidmain(String[] args)
{
while (true) {
varval = Console.readInt("Bir sayı giriniz:");
Console.writeLine(val);
Console.writeLine(val << 1);
if (val == 0)
break;
}
Console.writeLine("Tekrar yapıyor musunuz?");
}
}
Bitsel kaydırma operatörleri iki operandlı araek durumunda operatörlerdir.
/*---------------------------------------------------------------------------------------------------------------------- Bitsel kaydırma operatörleri iki operandlı araek durumunda operatörlerdir. Operatörlerin yan etkisi yoktur. Bu operatörler operatör öncelik tablosunun beşinci seviyesinde bulunurlar. Bu operatörler soldan sağa önceliklidir. Bu operatörler aritmetik operatörlerden düşük, karşılaştırma operatörlerinden yüksek önceliktedir. Bu operatörlerin ikinci oparandlarının negatif olması durumu ayrıca incelenecektir.----------------------------------------------------------------------------------------------------------------------*/
Bitsel kaydırma operatörleri ve özellikleri
/*---------------------------------------------------------------------------------------------------------------------- Bitsel sola kaydırma operatörü, birinci operandına ilişkin tamsayının bitlerinin, ikinci operandına ilişkin tamsayı kadar pozisyon sola kaydırılmasından elde edilen değeri üretir. Sınır dışına çıkan bitler için 0(sıfır) biti ile besleme yapılır----------------------------------------------------------------------------------------------------------------------*/packageorg.csystem.app;
importorg.csystem.util.BitwiseUtil;
publicclassApp {
publicstaticvoidmain(String[] args)
{
intx = 1;
while (x != 0) {
BitwiseUtil.writeBits(x);
x <<= 1;
}
}
}
Bir tamsayıyı bitsel olarak sola 1 kaydırmakla, o sayının iki ile çarpılmış değeri elde edilir
/*---------------------------------------------------------------------------------------------------------------------- Bir tamsayıyı bitsel olarak sola 1 kaydırmakla, o sayının iki ile çarpılmış değeri elde edilir----------------------------------------------------------------------------------------------------------------------*/packageorg.csystem.app;
importorg.csystem.util.Console;
publicclassApp {
publicstaticvoidmain(String[] args)
{
intval = Console.readInt("Bir sayı giriniz:");
Console.writeLine(val);
Console.writeLine(val << 1);
Console.writeLine("Tekrar yapıyor musunuz?");
}
}
Bitsel sağa kaydırma işlemi için iki tane operatör vardır: ">> ve >>>."
/*---------------------------------------------------------------------------------------------------------------------- Bitsel sağa kaydırma işlemi için iki tane operatör vardır:>>, >>>. Bu operatörlerde iki operandlı araek durumunda operatörlerdir. Operatörlerin yan etkisi yoktur. >> operatörü birinci operandı olan tam sayınının, ikinci operandı olan tamsayı kadar pozisyon sağa kaydırılmış değerini üretir. Bu operatör taşan bitler için sayı negatifse 1, pozitifse sıfır ile besleme yapar----------------------------------------------------------------------------------------------------------------------*/packageorg.csystem.app;
importorg.csystem.util.BitwiseUtil;
importorg.csystem.util.Console;
publicclassApp {
publicstaticvoidmain(String[] args)
{
while (true) {
varval = Console.readInt("Bir sayı girinz:");
varn = Console.readUInt("Ne kadar sağa kaydırmak istiyorsunuz?");
BitwiseUtil.writeBits(val);
BitwiseUtil.writeBits(val >> n);
if (val == 0)
break;
}
Console.writeLine("Tekrar yapıyor musunuz?");
}
}
Bir tamsayıyı bitsel olarak sola 1 kaydırmakla, o sayının ikiye bölünmüş değeri elde edilir
/*---------------------------------------------------------------------------------------------------------------------- Bir tamsayıyı bitsel olarak sola 1 kaydırmakla, o sayının ikiye bölünmüş değeri elde edilir----------------------------------------------------------------------------------------------------------------------*/packageorg.csystem.app;
importorg.csystem.util.Console;
publicclassApp {
publicstaticvoidmain(String[] args)
{
intval = Console.readInt("Bir sayı giriniz:");
Console.writeLine(val);
Console.writeLine(val >> 1);
Console.writeLine("Tekrar yapıyor musunuz?");
}
}
Bitsel işaretsiz sağa kaydırma operatörü sayıyı soldan hep sıfır değeri ile besler.
/*---------------------------------------------------------------------------------------------------------------------- Bitsel işaretsiz sağa kaydırma operatörü sayıyı soldan hep sıfır değeri ile besler. Yani negatif bir sayıdan bu şekilde kaydırma ile pozitif bir değer elde edilir----------------------------------------------------------------------------------------------------------------------*/packageorg.csystem.app;
importorg.csystem.util.BitwiseUtil;
importorg.csystem.util.Console;
publicclassApp {
publicstaticvoidmain(String[] args)
{
while (true) {
varval = Console.readInt("Bir sayı girinz:");
varn = Console.readUInt("Ne kadar sağa kaydırmak istiyorsunuz?");
BitwiseUtil.writeBits(val);
BitwiseUtil.writeBits(val >>> n);
if (val == 0)
break;
}
Console.writeLine("Tekrar yapıyor musunuz?");
}
}
~(~0 >>> 1) ifadesi
/*---------------------------------------------------------------------------------------------------------------------- Aşağıdaki örnekte ~(~0 >>> 1) ifadesiyle en yüksek anlamlı biti bir, diğer tüm bitleri sıfır olan 32 bitlik bir sayı elde edilmiştir. Sağa kaydırma işlemi işaraetsiz yapılmasaydı aynı sonuç elde edilemezdi----------------------------------------------------------------------------------------------------------------------*/packageorg.csystem.app;
importorg.csystem.util.BitwiseUtil;
importorg.csystem.util.Console;
publicclassApp {
publicstaticvoidmain(String[] args)
{
intx = ~(~0 >>> 1);
while (x != 0) {
BitwiseUtil.writeBits(x);
x >>>= 1;
}
Console.writeLine("Tekrar yapıyor musunuz?");
}
}
~(~0 >>> 1) ifadesi
/*---------------------------------------------------------------------------------------------------------------------- Aşağıdaki örnekte ~(~0L >>> 1) ifadesiyle en yüksek anlamlı biti bir, diğer tüm bitleri sıfır olan 64 bitlik bir sayı elde edilmiştir. Sabit L soneki koyulması gerektiğine dikkat ediniz----------------------------------------------------------------------------------------------------------------------*/packageorg.csystem.app;
importorg.csystem.util.BitwiseUtil;
importorg.csystem.util.Console;
publicclassApp {
publicstaticvoidmain(String[] args)
{
longx = ~(~0L >>> 1);
while (x != 0) {
BitwiseUtil.writeBits(x);
x >>>= 1;
}
Console.writeLine("Tekrar yapıyor musunuz?");
}
}
Bitsel ve" operatörü operatör öncelik 8. seviyesinde bulunan iki operandlı araek bir operatördür.
/*---------------------------------------------------------------------------------------------------------------------- "Bitsel ve" operatörü operatör öncelik 8. seviyesinde bulunan iki operandlı araek bir operatördür. Bu operatörün de yan etkisi yoktur. Operatör, operandlarına ilişkin sayıların karşılıklı bitlerini "ve" işlemine sokulduğunda elde edilen değeri üretir. Bu operatörün soldan sağa ilişkilidir (left associative)----------------------------------------------------------------------------------------------------------------------*/packageorg.csystem.app;
importorg.csystem.util.BitwiseUtil;
importorg.csystem.util.Console;
publicclassApp {
publicstaticvoidmain(String[] args)
{
vara = Console.readInt("Birinci sayıyı giriniz:");
varb = Console.readInt("İkinci sayıyı giriniz:");
BitwiseUtil.writeBits(a);
BitwiseUtil.writeBits(b);
BitwiseUtil.writeBits(a & b);
Console.writeLine("Tekrar yapıyor musunuz?");
}
}
bitsel ve operatörünün boolean türden operandlar ile kullanımı kısa devre davranışı olmayan "mantıksal ve" işlemi anlamına gelir.
/*---------------------------------------------------------------------------------------------------------------------- Hatırlanacağı gibi bitsel ve operatörünün boolean türden operandlar ile kullanımı kısa devre davranışı olmayan "mantıksal ve" işlemi anlamına gelir.----------------------------------------------------------------------------------------------------------------------*/packageorg.csystem.app;
importorg.csystem.util.Console;
classApp {
publicstaticvoidmain(String[] args)
{
Console.writeLine(Sample.foo() & Sample.bar());
}
}
classSample {
publicstaticbooleanfoo()
{
Console.writeLine("foo");
returnfalse;
}
publicstaticbooleanbar()
{
Console.writeLine("bar");
returntrue;
}
}
Bitsel özel veya" (bitwise xor) operatörü
/*---------------------------------------------------------------------------------------------------------------------- "Bitsel özel veya" (bitwise xor) operatörğ operatör öncelik tablosunun 9. seviyesindedir. İki operandlı araek durumunda yan etkisi olmayan soldan sağa öncelikli bir operatördür. Bu operatörün işlem tablosu şu şekildedir: x y x ^ y 0 0 0 0 1 1 1 0 1 1 1 0----------------------------------------------------------------------------------------------------------------------*/packageorg.csystem.app;
importorg.csystem.util.BitwiseUtil;
importorg.csystem.util.Console;
publicclassApp {
publicstaticvoidmain(String[] args)
{
vara = Console.readInt("Birinci sayıyı giriniz:");
varb = Console.readInt("İkinci sayıyı giriniz:");
BitwiseUtil.writeBits(a);
BitwiseUtil.writeBits(b);
BitwiseUtil.writeBits(a ^ b);
Console.writeLine("Tekrar yapıyor musunuz?");
}
}
Bir tamsayı arka arkaya aynı değerle bitsel exor işlemine sokulursa tamsayının kendisi elde edilir.
/*---------------------------------------------------------------------------------------------------------------------- Bir tamsayı arka arkaya aynı değerle bitsel exor işlemine sokulursa tamsayının kendisi elde edilir. Bu özelliği dolayısıyla bu operatör birçok şifreleme algoritmasında kullanılmaktadır----------------------------------------------------------------------------------------------------------------------*/packageorg.csystem.app;
importorg.csystem.util.BitwiseUtil;
importorg.csystem.util.Console;
publicclassApp {
publicstaticvoidmain(String[] args)
{
vara = Console.readInt("Birinci sayıyı giriniz:");
varb = Console.readInt("İkinci sayıyı giriniz:");
BitwiseUtil.writeBits(a);
BitwiseUtil.writeBits(b);
a ^= b;
BitwiseUtil.writeBits(a);
a ^= b;
BitwiseUtil.writeBits(a);
Console.writeLine("Tekrar yapıyor musunuz?");
}
}
Aşağıdaki örnekte sayı kendisi ile exor işlemine sokulduğu için sıfırlanmıştır
/*---------------------------------------------------------------------------------------------------------------------- Aşağıdaki örnekte sayı kendisi ile exor işlemine sokulduğu için sıfırlanmıştır----------------------------------------------------------------------------------------------------------------------*/packageorg.csystem.app;
importorg.csystem.util.Console;
publicclassApp {
publicstaticvoidmain(String[] args)
{
vara = Console.readInt("Bir sayıyı giriniz:");
Console.writeLine(a);
a ^= a;
Console.writeLine(a);
Console.writeLine("Tekrar yapıyor musunuz?");
}
}
Aşağıdaki örnekte çok basit bir şifreleme algoritması yazılmıştır
/*---------------------------------------------------------------------------------------------------------------------- Aşağıdaki örnekte çok basit bir şifreleme algoritması yazılmıştır----------------------------------------------------------------------------------------------------------------------*/packageorg.csystem.app;
importorg.csystem.util.Console;
publicclassApp {
publicstaticvoidmain(String[] args)
{
varstr = Console.read("Bir yazı giriniz:");
varn = Console.readInt("n değerini giriniz:");
StringnewStr = Util.encryptDecrypt(str, n);
Console.writeLine(newStr);
Console.writeLine(Util.encryptDecrypt(newStr, n));
}
}
classUtil {
publicstaticStringencryptDecrypt(Strings, intn)
{
//...intlength = s.length();
StringBuildersb = newStringBuilder();
for (inti = 0; i < length; ++i)
sb.append((char)(s.charAt(i) ^ n));
returnsb.toString();
}
}
/*--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/