//十进制转二进制
Console.WriteLine(Convert.ToString(69, 2));
//十进制转八进制
Console.WriteLine(Convert.ToString(69, 8));
//十进制转十六进制
Console.WriteLine(Convert.ToString(69, 16));

//二进制转十进制
Console.WriteLine(Convert.ToInt32(”100111101″, 2));
//八进制转十进制
Console.WriteLine(Convert.ToInt32(”76″, 8));
//十六进制转十进制
Console.WriteLine(Convert.ToInt32(”FF”, 16));

在C#中可以对整型运算对象按位进行逻辑运算。按位进行逻辑运算的意义是:依次取被运算对象的每个位,进行逻辑运算,每个位的逻辑运算结果是结果值的每个位。

C#支持的位逻辑运算符如表2.9所示。

运算符号 意义 运算对象类型 运算结果类型 对象数 实例

~ 位逻辑非运算 整型,字符型 整型 1 ~a

& 位逻辑与运算 2 a & b

| 位逻辑或运算 2 a | b

^ 位逻辑异或运算 2 a ^ b

<< 位左移运算 2 a<<4

>> 位右移运算 2 a>>2

1、位逻辑非运算

位逻辑非运算是单目的,只有一个运算对象。位逻辑非运算按位对运算对象的值进行非运算,即:如果某一位等于0,就将其转变为1;如果某一位等于1,就将其转变为0。
比如,对二进制的10010001进行位逻辑非运算,结果等于01101110,用十进制表示就是:
~145等于110;对二进制的01010101进行位逻辑非运算,结果等于10101010。用十进制表示就是~85等于176。

2、位逻辑与运算

位逻辑与运算将两个运算对象按位进行与运算。与运算的规则:1与1等于1,1与0等于0。
比如:10010001(二进制)&11110000等于10010000(二进制)。

3、位逻辑或运算

位逻辑或运算将两个运算对象按位进行或运算。或运算的规则是:1或1等1,1或0等于1,
0或0等于0。比如10010001(二进制)| 11110000(二进制)等于11110001(二进制)。

4、位逻辑异或运算

位逻辑异或运算将两个运算对象按位进行异或运算。异或运算的规则是:1异或1等于0,
1异或0等于1,0异或0等于0。即:相同得0,相异得1。
比如:10010001(二进制)^11110000(二进制)等于01100001(二进制)。

5、位左移运算

位左移运算将整个数按位左移若干位,左移后空出的部分0。比如:8位的byte型变量
byte a=0x65(即二进制的01100101),将其左移3位:a<<3的结果是0x27(即二进制的00101000)。

6、位右移运算

位右移运算将整个数按位右移若干位,右移后空出的部分填0。比如:8位的byte型变量
Byte a=0x65(既(二进制的01100101))将其右移3位:a>>3的结果是0x0c(二进制00001100)。

在进行位与、或、异或运算时,如果两个运算对象的类型一致,则运算结果的类型就是运算对象的类型。比如对两个int变量a和b做与运算,运算结果的类型还是int型。如果两个运算

对象的类型不一致,则C#要对不一致的类型进行类型转换,变成一致的类型,然后进行运算。
类型转换的规则同算术运算中整型量的转换则一致。

由位运算符连接整型量而成的表达式就是位运算表达式。

实例:

int i1 = Convert.ToInt32("10101000",2);
int i2 = Convert.ToInt32("11011010",2);
int i3 = i1 & i2;//
string s = Convert.ToString(i3,2);//结果"10001000"

位运算&字节运算的更多相关文章

  1. C#中的位的或运算的理解

    如果懂位的运算,看到下面这2个程序执行的结果,会很容易理解,如果像我这样的菜鸟,刚接触开始肯定也觉得晕晕的,|= 这是什么运算符? |=就是位的或运算符,下面还是用上面的程序来讲解一下,为什么上面2个 ...

  2. C++:用字符串数组实现大数运算,以两个不高于40位的大数运算为例。

    因为基本数据类型中整型的内存范围有限,所以直接进行大数之间的运算,不仅浪费空间,而且运行缓慢,甚至有些会导致数据溢出. 那怎么办呢? 这时我们就想直接不行,那咱们来间接的. 这就是我们今天主要要讲的: ...

  3. 什么是位、字节、字、KB、MB

    什么是位.字节.字.KB.MB 位:"位(bit)"是电子计算机中最小的数据单位.每一位的状态只能是0或1. 字节:8个二进制位构成1个"字节(Byte)",它 ...

  4. C#中位、字节等知识

    本文介绍C#中位.字节等知识. 1. 位(bit) 位(bit)有叫做比特,指二进制中的一位,是二进制的最小信息单位. bit也被称作小b,用b表示. 2. 字节(bytes) 8位表示一个字节. 由 ...

  5. Java bit、byte、位、字节、汉字、字符

    package com.suypower.chengyu.test; public class ByteTest { /** * byte 8 bits -128 - + 127 * 1 bit = ...

  6. 【转】bit、byte、位、字节、汉字的关系

    UTF-8和UTF-16的区别?Unicode和UTF是什么关系?Unicode转义字符(\u+4个十六进制).遇到多个引号的时候转义? 解释: unicode是一种编码方式,和ascii是同一个概念 ...

  7. bit,byte,char,位,字节,字符 的区别

    bit,byte,char,位,字节,字符 的区别 原创文章,未经作者允许,禁止转载!!!

  8. oracle的递归运算(树运算) 无限树形

    oracle的递归运算(树运算)start with org_id ='1'connect by prior parent_id=son_id 1.前言   oracle的递归运算,在我们web页面的 ...

  9. python基础:1.位、字节、字的关系

    1.位,简称b,或bit,比特,数据存储的最小单位.每个二进制数字0或1就是一个位(bit),网络通信常用bps,bit per second ,每秒传输多少位 2.字节,简称byte, 1byte ...

随机推荐

  1. ASP.NET MVC 学习7、为Model Class的字段添加验证属性(validation attribuate)

    Adding Validation to the Model ,在Model中添加数据验证 参考:http://www.asp.net/mvc/tutorials/mvc-4/getting-star ...

  2. android开发调用c++共享库so文件

    1.编写libaab.cpp #include <stdio.h>#include <stdlib.h> #ifdef __cplusplusextern "C&qu ...

  3. Oracle 隔离级别

    From 11gR2: http://download.oracle.com/docs/cd/E11882_01/server.112/e16508/consist.htm#CNCPT621 一. A ...

  4. Zend Framework 入门(4)—页面布局

    Zend Framework 的页面布局模块——Zend_Layout——既可以跟 MVC 一起使用,也可以单独使用.本文只讨论与 MVC 一起使用的情况. 1. 布局脚本 在 application ...

  5. ECshop 二次开发模板教程2

    不知道大家是学会用循环了呢,还是我的言语实在有问题,大家实在无法完成阅读哦,居然大家都没有问题,暂时心里安慰,把他当做好事情,大家都会调用了,呵呵,那我们继续循环调用商品了!好,继续在我们昨天的基础上 ...

  6. Oracle 存储过程动态建表

    动态sql,顾名思义就是动态执行的sql,也就是说在没执行之前是动态的拼接的. 任务 传入参数:新建的表名hd+当前的年和月,例如hd_201105表结构是:字段1:id ,类型是number,可以自 ...

  7. 浅淡C/C++中的typedef和#define

    在C/C++中,我们平时写程序可能经常会用到typedef关键字和#define宏 定义命令,在某些情况下使用它们会达到相同的效果,但是它们是有实质性的区别,一个是C/C++的关键字,一个是C/C++ ...

  8. js控制不同的时间段显示不同的css样式

    js控制不同的时间段显示不同的css样式 js函数,可以放到单独的js文件中也可以放到当前页的<head>标记之内 function getCSS(){        datetoday ...

  9. 《浅析各类DDoS攻击放大技术》

    原文链接:http://www.freebuf.com/articles/network/76021.html FreeBuf曾报道过,BT种子协议家族漏洞可用作反射分布式拒绝服务攻击(DRDoS a ...

  10. sql联接那点儿事儿

    1.交叉联接(cross join) select * from t.toy ,b.boy from toy as t cross join boy as b 其效果同select * from t. ...