当前位置:首页 > 代码相关 > 正文内容

C# 中左移运算

admin5年前 (2020-03-22)代码相关3019

将一个数换算成二进制,整体向左移动指定的位数。

如:7的二进制在Int32中二进制表达为:

00000000 00000000 00000000 00000111

将其左移一位则变为:

00000000 00000000 00000000 00001110

若移位后超出最大位数,则超出部分舍掉,如:

Int32中最大值的二进制数为:

01111111 11111111 11111111 11111111

左移三位,变为:

11111111 11111111 11111111 11111000


下面的代码展示了这个过程

namespace _20200322
{
    class Program
    {
        static void Main(string[] args)
        {
            int a = int.MaxValue;
            int b = a << 3;

            string sta = Convert.ToString(a, 2).PadLeft(32, '0');
            string stb = Convert.ToString(b, 2).PadLeft(32, '0');

            Console.WriteLine("a = " + a);
            Console.WriteLine("b = " + b);

            Console.WriteLine("左移前a:" + sta);
            Console.WriteLine("左移后a:" + stb);

            Console.ReadKey();
        }
    }
}

结果:

image.png

扫描二维码推送至手机访问。

版权声明:本文由lovedm.club发布,如需转载请注明出处。

本文链接:http://lovedm.club/?id=19

标签: C#
分享给朋友:

“C# 中左移运算” 的相关文章

C# WPF程序 显示时间

C# WPF程序 显示时间

例子来源于此视频https://www.bilibili.com/video/av1422127?p=4 此例子是想说明有的类主要使用它的事件namespace Wpf_test {     /// <summary> &...

C# 使用不安全的代码

首先需要在 项目->属性->生成 中勾选允许不安全代码下面的代码使用了指针,通过指针修改结构体的成员namespace _20200320 {     class Program   &nbs...

C# 属性,get,set使用

属性反映了状态,是对字段的自然扩展。下面的代码,有一个学生类,类中有年龄属性,通过get,set对年龄进行值的获取与设置,同时对年龄进行约束,使值控制在0-120之间,否则抛出异常信息。namespace _20200324_2 {     cl...

C# 多线程(1)

一、首先看几个词的含义:进程:进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。线程:线程(Thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的...

C# Stack堆栈

Stack代表了一个先入后出的对象集合。有以下常用方法:表 3Clear()从 Stack 中移除所有对象。Contains(Object)确定某元素是否在 Stack 中。CopyTo(Array, Int32)从指定的数组索引处开始,将 Stac...

C# 返回值是接口的方法

今天写PIE二次开发加载栅格数据的时候发现类中方法的返回值是接口,之前没怎么写过,在此记录一下。在例子中设计一个接口 ICalculate ,接口中有两个方法, Add() 和 Div() 分别为加法和减法的功能,均有两个参数,参数和返回值的类型都是int类型。设计一个名为Calculat...