티스토리 뷰
perform a circular bit shift in C#
(int32variable << bits) | (int32variable >> (32 - bits))
Output
(int32variable << bits) | (int32variable >> (32 - bits))
using System;
namespace Shifting
{
class Program
{
static void Main(string[] args)
{
int num;
int cnt;
Console.WriteLine("<< 1");
num = 1;
cnt = 0;
do
{
printBinaryString(num, cnt);
num = num << 1;
cnt++;
} while (cnt < 33);
Console.WriteLine();
Console.WriteLine("<< -1");
num = -1;
cnt = 0;
do
{
printBinaryString(num, cnt);
num = num << 1;
cnt++;
} while (cnt < 33);
Console.WriteLine();
Console.WriteLine(">> Int32.MaxValue");
num = Int32.MaxValue;
cnt = 0;
do
{
printBinaryString(num, cnt);
num = num >> 1;
cnt++;
} while (cnt < 33);
Console.WriteLine();
Console.WriteLine(">> Int32.MinValue");
num = Int32.MinValue;
cnt = 0;
do
{
printBinaryString(num, cnt);
num = num >> 1;
cnt++;
} while (cnt < 33);
}
private static void printBinaryString(int num, int cnt)
{
string bin = Convert.ToString(num, 2);
bin = bin.PadLeft(32, '0');
Console.WriteLine("{0,2} {1,11} {2}", cnt, num, bin);
}
}
}
namespace Shifting
{
class Program
{
static void Main(string[] args)
{
int num;
int cnt;
Console.WriteLine("<< 1");
num = 1;
cnt = 0;
do
{
printBinaryString(num, cnt);
num = num << 1;
cnt++;
} while (cnt < 33);
Console.WriteLine();
Console.WriteLine("<< -1");
num = -1;
cnt = 0;
do
{
printBinaryString(num, cnt);
num = num << 1;
cnt++;
} while (cnt < 33);
Console.WriteLine();
Console.WriteLine(">> Int32.MaxValue");
num = Int32.MaxValue;
cnt = 0;
do
{
printBinaryString(num, cnt);
num = num >> 1;
cnt++;
} while (cnt < 33);
Console.WriteLine();
Console.WriteLine(">> Int32.MinValue");
num = Int32.MinValue;
cnt = 0;
do
{
printBinaryString(num, cnt);
num = num >> 1;
cnt++;
} while (cnt < 33);
}
private static void printBinaryString(int num, int cnt)
{
string bin = Convert.ToString(num, 2);
bin = bin.PadLeft(32, '0');
Console.WriteLine("{0,2} {1,11} {2}", cnt, num, bin);
}
}
}
Output
<< 1
0 1 00000000000000000000000000000001
1 2 00000000000000000000000000000010
2 4 00000000000000000000000000000100
3 8 00000000000000000000000000001000
4 16 00000000000000000000000000010000
5 32 00000000000000000000000000100000
6 64 00000000000000000000000001000000
7 128 00000000000000000000000010000000
8 256 00000000000000000000000100000000
9 512 00000000000000000000001000000000
10 1024 00000000000000000000010000000000
11 2048 00000000000000000000100000000000
12 4096 00000000000000000001000000000000
13 8192 00000000000000000010000000000000
14 16384 00000000000000000100000000000000
15 32768 00000000000000001000000000000000
16 65536 00000000000000010000000000000000
17 131072 00000000000000100000000000000000
18 262144 00000000000001000000000000000000
19 524288 00000000000010000000000000000000
20 1048576 00000000000100000000000000000000
21 2097152 00000000001000000000000000000000
22 4194304 00000000010000000000000000000000
23 8388608 00000000100000000000000000000000
24 16777216 00000001000000000000000000000000
25 33554432 00000010000000000000000000000000
26 67108864 00000100000000000000000000000000
27 134217728 00001000000000000000000000000000
28 268435456 00010000000000000000000000000000
29 536870912 00100000000000000000000000000000
30 1073741824 01000000000000000000000000000000
31 -2147483648 10000000000000000000000000000000
32 0 00000000000000000000000000000000
<< -1
0 -1 11111111111111111111111111111111
1 -2 11111111111111111111111111111110
2 -4 11111111111111111111111111111100
3 -8 11111111111111111111111111111000
4 -16 11111111111111111111111111110000
5 -32 11111111111111111111111111100000
6 -64 11111111111111111111111111000000
7 -128 11111111111111111111111110000000
8 -256 11111111111111111111111100000000
9 -512 11111111111111111111111000000000
10 -1024 11111111111111111111110000000000
11 -2048 11111111111111111111100000000000
12 -4096 11111111111111111111000000000000
13 -8192 11111111111111111110000000000000
14 -16384 11111111111111111100000000000000
15 -32768 11111111111111111000000000000000
16 -65536 11111111111111110000000000000000
17 -131072 11111111111111100000000000000000
18 -262144 11111111111111000000000000000000
19 -524288 11111111111110000000000000000000
20 -1048576 11111111111100000000000000000000
21 -2097152 11111111111000000000000000000000
22 -4194304 11111111110000000000000000000000
23 -8388608 11111111100000000000000000000000
24 -16777216 11111111000000000000000000000000
25 -33554432 11111110000000000000000000000000
26 -67108864 11111100000000000000000000000000
27 -134217728 11111000000000000000000000000000
28 -268435456 11110000000000000000000000000000
29 -536870912 11100000000000000000000000000000
30 -1073741824 11000000000000000000000000000000
31 -2147483648 10000000000000000000000000000000
32 0 00000000000000000000000000000000
>> Int32.MaxValue
0 2147483647 01111111111111111111111111111111
1 1073741823 00111111111111111111111111111111
2 536870911 00011111111111111111111111111111
3 268435455 00001111111111111111111111111111
4 134217727 00000111111111111111111111111111
5 67108863 00000011111111111111111111111111
6 33554431 00000001111111111111111111111111
7 16777215 00000000111111111111111111111111
8 8388607 00000000011111111111111111111111
9 4194303 00000000001111111111111111111111
10 2097151 00000000000111111111111111111111
11 1048575 00000000000011111111111111111111
12 524287 00000000000001111111111111111111
13 262143 00000000000000111111111111111111
14 131071 00000000000000011111111111111111
15 65535 00000000000000001111111111111111
16 32767 00000000000000000111111111111111
17 16383 00000000000000000011111111111111
18 8191 00000000000000000001111111111111
19 4095 00000000000000000000111111111111
20 2047 00000000000000000000011111111111
21 1023 00000000000000000000001111111111
22 511 00000000000000000000000111111111
23 255 00000000000000000000000011111111
24 127 00000000000000000000000001111111
25 63 00000000000000000000000000111111
26 31 00000000000000000000000000011111
27 15 00000000000000000000000000001111
28 7 00000000000000000000000000000111
29 3 00000000000000000000000000000011
30 1 00000000000000000000000000000001
31 0 00000000000000000000000000000000
32 0 00000000000000000000000000000000
>> Int32.MinValue
0 -2147483648 10000000000000000000000000000000
1 -1073741824 11000000000000000000000000000000
2 -536870912 11100000000000000000000000000000
3 -268435456 11110000000000000000000000000000
4 -134217728 11111000000000000000000000000000
5 -67108864 11111100000000000000000000000000
6 -33554432 11111110000000000000000000000000
7 -16777216 11111111000000000000000000000000
8 -8388608 11111111100000000000000000000000
9 -4194304 11111111110000000000000000000000
10 -2097152 11111111111000000000000000000000
11 -1048576 11111111111100000000000000000000
12 -524288 11111111111110000000000000000000
13 -262144 11111111111111000000000000000000
14 -131072 11111111111111100000000000000000
15 -65536 11111111111111110000000000000000
16 -32768 11111111111111111000000000000000
17 -16384 11111111111111111100000000000000
18 -8192 11111111111111111110000000000000
19 -4096 11111111111111111111000000000000
20 -2048 11111111111111111111100000000000
21 -1024 11111111111111111111110000000000
22 -512 11111111111111111111111000000000
23 -256 11111111111111111111111100000000
24 -128 11111111111111111111111110000000
25 -64 11111111111111111111111111000000
26 -32 11111111111111111111111111100000
27 -16 11111111111111111111111111110000
28 -8 11111111111111111111111111111000
29 -4 11111111111111111111111111111100
30 -2 11111111111111111111111111111110
31 -1 11111111111111111111111111111111
32 -1 11111111111111111111111111111111
0 1 00000000000000000000000000000001
1 2 00000000000000000000000000000010
2 4 00000000000000000000000000000100
3 8 00000000000000000000000000001000
4 16 00000000000000000000000000010000
5 32 00000000000000000000000000100000
6 64 00000000000000000000000001000000
7 128 00000000000000000000000010000000
8 256 00000000000000000000000100000000
9 512 00000000000000000000001000000000
10 1024 00000000000000000000010000000000
11 2048 00000000000000000000100000000000
12 4096 00000000000000000001000000000000
13 8192 00000000000000000010000000000000
14 16384 00000000000000000100000000000000
15 32768 00000000000000001000000000000000
16 65536 00000000000000010000000000000000
17 131072 00000000000000100000000000000000
18 262144 00000000000001000000000000000000
19 524288 00000000000010000000000000000000
20 1048576 00000000000100000000000000000000
21 2097152 00000000001000000000000000000000
22 4194304 00000000010000000000000000000000
23 8388608 00000000100000000000000000000000
24 16777216 00000001000000000000000000000000
25 33554432 00000010000000000000000000000000
26 67108864 00000100000000000000000000000000
27 134217728 00001000000000000000000000000000
28 268435456 00010000000000000000000000000000
29 536870912 00100000000000000000000000000000
30 1073741824 01000000000000000000000000000000
31 -2147483648 10000000000000000000000000000000
32 0 00000000000000000000000000000000
<< -1
0 -1 11111111111111111111111111111111
1 -2 11111111111111111111111111111110
2 -4 11111111111111111111111111111100
3 -8 11111111111111111111111111111000
4 -16 11111111111111111111111111110000
5 -32 11111111111111111111111111100000
6 -64 11111111111111111111111111000000
7 -128 11111111111111111111111110000000
8 -256 11111111111111111111111100000000
9 -512 11111111111111111111111000000000
10 -1024 11111111111111111111110000000000
11 -2048 11111111111111111111100000000000
12 -4096 11111111111111111111000000000000
13 -8192 11111111111111111110000000000000
14 -16384 11111111111111111100000000000000
15 -32768 11111111111111111000000000000000
16 -65536 11111111111111110000000000000000
17 -131072 11111111111111100000000000000000
18 -262144 11111111111111000000000000000000
19 -524288 11111111111110000000000000000000
20 -1048576 11111111111100000000000000000000
21 -2097152 11111111111000000000000000000000
22 -4194304 11111111110000000000000000000000
23 -8388608 11111111100000000000000000000000
24 -16777216 11111111000000000000000000000000
25 -33554432 11111110000000000000000000000000
26 -67108864 11111100000000000000000000000000
27 -134217728 11111000000000000000000000000000
28 -268435456 11110000000000000000000000000000
29 -536870912 11100000000000000000000000000000
30 -1073741824 11000000000000000000000000000000
31 -2147483648 10000000000000000000000000000000
32 0 00000000000000000000000000000000
>> Int32.MaxValue
0 2147483647 01111111111111111111111111111111
1 1073741823 00111111111111111111111111111111
2 536870911 00011111111111111111111111111111
3 268435455 00001111111111111111111111111111
4 134217727 00000111111111111111111111111111
5 67108863 00000011111111111111111111111111
6 33554431 00000001111111111111111111111111
7 16777215 00000000111111111111111111111111
8 8388607 00000000011111111111111111111111
9 4194303 00000000001111111111111111111111
10 2097151 00000000000111111111111111111111
11 1048575 00000000000011111111111111111111
12 524287 00000000000001111111111111111111
13 262143 00000000000000111111111111111111
14 131071 00000000000000011111111111111111
15 65535 00000000000000001111111111111111
16 32767 00000000000000000111111111111111
17 16383 00000000000000000011111111111111
18 8191 00000000000000000001111111111111
19 4095 00000000000000000000111111111111
20 2047 00000000000000000000011111111111
21 1023 00000000000000000000001111111111
22 511 00000000000000000000000111111111
23 255 00000000000000000000000011111111
24 127 00000000000000000000000001111111
25 63 00000000000000000000000000111111
26 31 00000000000000000000000000011111
27 15 00000000000000000000000000001111
28 7 00000000000000000000000000000111
29 3 00000000000000000000000000000011
30 1 00000000000000000000000000000001
31 0 00000000000000000000000000000000
32 0 00000000000000000000000000000000
>> Int32.MinValue
0 -2147483648 10000000000000000000000000000000
1 -1073741824 11000000000000000000000000000000
2 -536870912 11100000000000000000000000000000
3 -268435456 11110000000000000000000000000000
4 -134217728 11111000000000000000000000000000
5 -67108864 11111100000000000000000000000000
6 -33554432 11111110000000000000000000000000
7 -16777216 11111111000000000000000000000000
8 -8388608 11111111100000000000000000000000
9 -4194304 11111111110000000000000000000000
10 -2097152 11111111111000000000000000000000
11 -1048576 11111111111100000000000000000000
12 -524288 11111111111110000000000000000000
13 -262144 11111111111111000000000000000000
14 -131072 11111111111111100000000000000000
15 -65536 11111111111111110000000000000000
16 -32768 11111111111111111000000000000000
17 -16384 11111111111111111100000000000000
18 -8192 11111111111111111110000000000000
19 -4096 11111111111111111111000000000000
20 -2048 11111111111111111111100000000000
21 -1024 11111111111111111111110000000000
22 -512 11111111111111111111111000000000
23 -256 11111111111111111111111100000000
24 -128 11111111111111111111111110000000
25 -64 11111111111111111111111111000000
26 -32 11111111111111111111111111100000
27 -16 11111111111111111111111111110000
28 -8 11111111111111111111111111111000
29 -4 11111111111111111111111111111100
30 -2 11111111111111111111111111111110
31 -1 11111111111111111111111111111111
32 -1 11111111111111111111111111111111
'Code > C#' 카테고리의 다른 글
[C#] Windows UI Automation Sample (0) | 2010.04.13 |
---|---|
[C#] indexer sample (0) | 2010.02.23 |
[C#] Register/Unregister ActiveX Control (0) | 2009.03.15 |
[C#] Detect UserControl's Closing (0) | 2009.01.07 |
[C#] DockPanel Suite Sample (0) | 2009.01.05 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Sample Code
- 애드센스숨기기
- 애드센스감추기
- Phalanger
- AdSense숨기기
- registry
- Rollback Rx
- autohotkey
- AdSense감추기
- windows
- DotNetMagic
- Regular Expressions
- 스크린캡쳐
- java
- Microsoft
- tagREADYSTATE
- Automation
- READYSTATE_COMPLETE
- c#
- download.com
- jre
- 유틸리티
- iText
- ScreenHunter
- Service pack
- AxWebBrowser
- .net framework
- WinAutomation
- iTextSharp
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
글 보관함