Chinaunix首页 | 论坛 | 博客
  • 博客访问: 161824
  • 博文数量: 76
  • 博客积分: 1513
  • 博客等级: 上尉
  • 技术积分: 755
  • 用 户 组: 普通用户
  • 注册时间: 2011-11-25 15:15
文章分类

全部博文(76)

文章存档

2012年(2)

2011年(74)

我的朋友

分类: C/C++

2011-11-25 20:49:00

  1. #include <iostream>

  2. #include <bitset>

  3. using namespace std;

  4.  

  5. int main()

  6. {

  7.     cout<<"/**********测试 int**********/"<<endl;

  8.     int val_int = 0x023716D1;

  9.     for(int i = 0; i<34; i++)

  10.     {

  11.             cout << "val_int左移" << i << "位 = \t" << bitset<sizeof(int)*8>(val_int << i) << endl;

  12.     }

  13.     cout<<"/**********测试 int 结束**********/"<<endl;

  14.     cout<<"/**********测试 unsigned int**********/" << endl;

  15.     unsigned int val_uint = 0x023716D1;

  16.     for(int i = 0; i<34; i++)

  17.     {

  18.             cout << "val_uint左移" << i << "位 = \t" << bitset<sizeof(unsigned int)*8>(val_uint << i) << endl;

  19.     }

  20.     cout << "/**********测试 unsigned int 结束**********/" << endl;

  21.     cout<<"/**********测试 short**********/" << endl;

  22.     short val_short = 0x0237;

  23.     for(int i = 0; i<34; i++)

  24.     {

  25.             cout << "val_short左移" << i << "位 = \t" << bitset<sizeof(short)*8>(val_short << i) << endl;

  26.     }

  27.     cout << "/**********测试 short 结束**********/" << endl;

  28.     cout<<"/**********测试 char**********/" << endl;

  29.     char val_char = 0x37;

  30.     for(int i = 0; i<34; i++)

  31.     {

  32.        cout << "val_char左移" << i << "位 = \t" << bitset<sizeof(char)*8>(val_char << i) << endl;

  33.     }

  34.     cout << "/**********测试 short 结束**********/" << endl;

  35.     system("pause");

  36. }

OUTPUT:

/**********测试 int**********/

val_int左移0位 =        00000010001101110001011011010001

val_int左移1位 =        00000100011011100010110110100010

val_int左移2位 =        00001000110111000101101101000100

val_int左移3位 =        00010001101110001011011010001000

val_int左移4位 =        00100011011100010110110100010000

val_int左移5位 =        01000110111000101101101000100000

val_int左移6位 =        10001101110001011011010001000000

val_int左移7位 =        00011011100010110110100010000000

val_int左移8位 =        00110111000101101101000100000000

val_int左移9位 =        01101110001011011010001000000000

val_int左移10位 =       11011100010110110100010000000000

val_int左移11位 =       10111000101101101000100000000000

val_int左移12位 =       01110001011011010001000000000000

val_int左移13位 =       11100010110110100010000000000000

val_int左移14位 =       11000101101101000100000000000000

val_int左移15位 =       10001011011010001000000000000000

val_int左移16位 =       00010110110100010000000000000000

val_int左移17位 =       00101101101000100000000000000000

val_int左移18位 =       01011011010001000000000000000000

val_int左移19位 =       10110110100010000000000000000000

val_int左移20位 =       01101101000100000000000000000000

val_int左移21位 =       11011010001000000000000000000000

val_int左移22位 =       10110100010000000000000000000000

val_int左移23位 =       01101000100000000000000000000000

val_int左移24位 =       11010001000000000000000000000000

val_int左移25位 =       10100010000000000000000000000000

val_int左移26位 =       01000100000000000000000000000000

val_int左移27位 =       10001000000000000000000000000000

val_int左移28位 =       00010000000000000000000000000000

val_int左移29位 =       00100000000000000000000000000000

val_int左移30位 =       01000000000000000000000000000000

val_int左移31位 =       10000000000000000000000000000000

val_int左移32位 =       00000010001101110001011011010001

val_int左移33位 =       00000100011011100010110110100010

/**********测试 int 结束**********/

/**********测试 unsigned int**********/

val_uint左移0位 =       00000010001101110001011011010001

val_uint左移1位 =       00000100011011100010110110100010

val_uint左移2位 =       00001000110111000101101101000100

val_uint左移3位 =       00010001101110001011011010001000

val_uint左移4位 =       00100011011100010110110100010000

val_uint左移5位 =       01000110111000101101101000100000

val_uint左移6位 =       10001101110001011011010001000000

val_uint左移7位 =       00011011100010110110100010000000

val_uint左移8位 =       00110111000101101101000100000000

val_uint左移9位 =       01101110001011011010001000000000

val_uint左移10位 =      11011100010110110100010000000000

val_uint左移11位 =      10111000101101101000100000000000

val_uint左移12位 =      01110001011011010001000000000000

val_uint左移13位 =      11100010110110100010000000000000

val_uint左移14位 =      11000101101101000100000000000000

val_uint左移15位 =      10001011011010001000000000000000

val_uint左移16位 =      00010110110100010000000000000000

val_uint左移17位 =      00101101101000100000000000000000

val_uint左移18位 =      01011011010001000000000000000000

val_uint左移19位 =      10110110100010000000000000000000

val_uint左移20位 =      01101101000100000000000000000000

val_uint左移21位 =      11011010001000000000000000000000

val_uint左移22位 =      10110100010000000000000000000000

val_uint左移23位 =      01101000100000000000000000000000

val_uint左移24位 =      11010001000000000000000000000000

val_uint左移25位 =      10100010000000000000000000000000

val_uint左移26位 =      01000100000000000000000000000000

val_uint左移27位 =      10001000000000000000000000000000

val_uint左移28位 =      00010000000000000000000000000000

val_uint左移29位 =      00100000000000000000000000000000

val_uint左移30位 =      01000000000000000000000000000000

val_uint左移31位 =      10000000000000000000000000000000

val_uint左移32位 =      00000010001101110001011011010001

val_uint左移33位 =      00000100011011100010110110100010

/**********测试 unsigned int 结束**********/

/**********测试 short**********/

val_short左移0位 =      0000001000110111

val_short左移1位 =      0000010001101110

val_short左移2位 =      0000100011011100

val_short左移3位 =      0001000110111000

val_short左移4位 =      0010001101110000

val_short左移5位 =      0100011011100000

val_short左移6位 =      1000110111000000

val_short左移7位 =      0001101110000000

val_short左移8位 =      0011011100000000

val_short左移9位 =      0110111000000000

val_short左移10位 =     1101110000000000

val_short左移11位 =     1011100000000000

val_short左移12位 =     0111000000000000

val_short左移13位 =     1110000000000000

val_short左移14位 =     1100000000000000

val_short左移15位 =     1000000000000000

val_short左移16位 =     0000000000000000

val_short左移17位 =     0000000000000000

val_short左移18位 =     0000000000000000

val_short左移19位 =     0000000000000000

val_short左移20位 =     0000000000000000

val_short左移21位 =     0000000000000000

val_short左移22位 =     0000000000000000

val_short左移23位 =     0000000000000000

val_short左移24位 =     0000000000000000

val_short左移25位 =     0000000000000000

val_short左移26位 =     0000000000000000

val_short左移27位 =     0000000000000000

val_short左移28位 =     0000000000000000

val_short左移29位 =     0000000000000000

val_short左移30位 =     0000000000000000

val_short左移31位 =     0000000000000000

val_short左移32位 =     0000001000110111

val_short左移33位 =     0000010001101110

/**********测试 short  结束**********/

/**********测试 char**********/

val_char左移0位 =       00110111

val_char左移1位 =       01101110

val_char左移2位 =       11011100

val_char左移3位 =       10111000

val_char左移4位 =       01110000

val_char左移5位 =       11100000

val_char左移6位 =       11000000

val_char左移7位 =       10000000

val_char左移8位 =       00000000

val_char左移9位 =       00000000

val_char左移10位 =      00000000

val_char左移11位 =      00000000

val_char左移12位 =      00000000

val_char左移13位 =      00000000

val_char左移14位 =      00000000

val_char左移15位 =      00000000

val_char左移16位 =      00000000

val_char左移17位 =      00000000

val_char左移18位 =      00000000

val_char左移19位 =      00000000

val_char左移20位 =      00000000

val_char左移21位 =      00000000

val_char左移22位 =      00000000

val_char左移23位 =      00000000

val_char左移24位 =      00000000

val_char左移25位 =      00000000

val_char左移26位 =      00000000

val_char左移27位 =      00000000

val_char左移28位 =      00000000

val_char左移29位 =      00000000

val_char左移30位 =      00000000

val_char左移31位 =      00000000

val_char左移32位 =      00110111  /*右移32位后,其值没有发生变化*/

val_char左移33位 =      01101110

/**********测试 short  结束**********/

请按任意键继续. . .


补充:

1.  左移n位=乘以2的n次方;

    右移n位=除以2的n次方。

    eg: 1<<4=1*2^4=16;

阅读(1689) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~