一个例子理解C#位移

很多人提问,不知道C#位移,可能有些人在面试中也遇到过

其实很简单。。。

C#位移运算符

左移:<<

右移:>>

位移理解可能简单一些:其实就是数据转换成二进制的左右移动;右移左补0,左移右补0,后面多出来的部分去掉。

用乘除法去理解位移也可以:

     左位移:相当于乘

左移1位相当于乘2,左移2位相当于乘4,左移3位相当于乘8,左移4位相当于乘16...类推

右位移:相当于除

右移1位相当于除2,右移2位相当于除4,右移3位相当于除8,右移4位相当于除16...类推

下面用一个曾经回答一个网友的提问来理解一下位移的运算

题目:把89右位移一位:

 
  string flag = Convert.ToString(89, 2);    //这是把你的89转为2进制数。。
  
  //flag结果:1011001
  //你要右位移,左边补个0,后面多出来一位去掉

  int j = Convert.ToInt32("0101100", 2);    //再把2进制转化了10进制数。。

  //结果:44

  //位移就是这么简单

这样理解位移运算就很容易...

补充:

向右移位运算符在带符号整数类型的操作系统的不同而不同,在一些情况下,右位移左补0;其它情况下,右位移左补1

int i = -128;

string flag = Convert.ToString(i, 2);

i >>= 2;

string flag2 = Convert.ToString(i, 2);

//结果:
//-128的二进制:         11111111111111111111111110000000
//-128右位移2位后的值:   -32
//-128右位移2位后的二进制:11111111111111111111111111100000

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏逸鹏说道

Python3 与 C# 基础语法对比(String专栏-新排版)

在线编程:https://mybinder.org/v2/gh/lotapp/BaseCode/master

1112
来自专栏大内老A

谈谈Nullable<T>的类型转换问题

本篇文章讨论可空值类型(Nullable<T>)的转换,却确地说是如何将一种类型的值对象转换成相应的可空值。这来源于今天我们的一个成员遇到的一个小问题,我经过一...

20110
来自专栏web编程技术分享

【Java框架型项目从入门到装逼】第十节 simple-jdbc源码

40710
来自专栏分布式系统和大数据处理

.Net中的反射(动态创建类型实例) - Part.4

在前面节中,我们先了解了反射,然后利用反射查看了类型信息,并学习了如何创建自定义特性,并利用反射来遍历它。可以说,前面三节,我们学习的都是反射是什么,在接下来的...

1343
来自专栏测试开发架构之路

C语言之位运算

指针和位运算很适合编写系统软件的需要。 位运算指进行二进制位的运算。   按位与”运算符 & 用途 1)清零 2)取一个数中某些指定位(比如只需要低8位) 3)...

41210
来自专栏wym

2013年多校赛 hdu4607

   那么就考虑树上最长距离,树的直径, 如果访问的点大于树的直径就要走回头路,答案即多的数乘2加上原来树的直径

1225
来自专栏GreenLeaves

Linq基础知识小记一

1、LINQ(语言级集成查询)的作用就是提供一种统一且对称的方式,让程序员在广义的数据上获取和操作数据。广义的数据包括XML文档数据、元数据、System.Da...

1938
来自专栏菩提树下的杨过

温故而知新:Delegate,Action,Func,匿名方法,匿名委托,事件

一、委托Delegate 一般的方法(Method)中,我们的参数总是string,int,DateTime...这些基本的数据类型(或者没有参数),比如 p...

1896
来自专栏小樱的经验随笔

Codeforces 842A Kirill And The Game【暴力,水】

A. Kirill And The Game time limit per test:2 seconds memory limit per test:256 m...

2877
来自专栏跟着阿笨一起玩NET

C# string byte[] Base64 常用互相转换

http://www.cnblogs.com/zxx193/p/3605238.html?utm_source=tuicool

1921

扫码关注云+社区

领取腾讯云代金券