1.首先做一下知识的普及
C或c Currency 货币格式
D或d Decimal 十进制格式
E或e Exponent 指数格式
F或f Fixed point (float)固定精度格式
G或g General 常用格式
N或n 用逗号分割千位的数字,比如1234将会被变成1,234
P或p Percentage 百分符号格式
R或r Round-trip 圆整(只用于浮点数)保证一个数字被转化成字符串以后可以再被转回成同样的数字
X或x Hex 16进制格式
int i = 123456; Console.WriteLine("{0:C}", i); // ¥123,456.00 Console.WriteLine("{0:D}", i); // 123456 Console.WriteLine("{0:E}", i); // 1.234560E+005 Console.WriteLine("{0:F}", i); // 123456.00 Console.WriteLine("{0:G}", i); // 123456 Console.WriteLine("{0:N}", i); // 123,456.00 Console.WriteLine("{0:P}", i); // 12,345,600.00 % Console.WriteLine("{0:X}", i); // 1E240
2.用string.Format实现的和上面的一样,这里不再详细举例
Console.WriteLine(string.Format("{0:C}", i)); // ¥123,456.00
3.占位符
0 0占位符 用0填充不足的位数
# 数字占位符 用#代替实际的位数
i = 1234; Console.WriteLine("{0:C5}", i); // ¥123,4.00000 Console.WriteLine("{0:0}", i); // 1234 Console.WriteLine("{0:00000}", i); // 01234 Console.WriteLine("{0:#}", i); // 1234 Console.WriteLine("{0:####}", i); // 1234
4.日期的转换
Console.WriteLine(DateTime.Now.ToString("MM/dd/yyyy HH:mm:ss")); // 08/23/2016 23:23:23
5.位运算 NOT 由否定号(~)表示
位运算 NOT 实质上是对数字求负,然后减 1,因此 25 变 -26
int iNum1 = 25; //25 等于 00000000000000000000000000011001 int iNum2 = ~iNum1; //转换为 11111111111111111111111111100110 Console.WriteLine(iNum2); //输出 "-26" iNum1 = 25; iNum2 = -iNum1 - 1; Console.WriteLine(string.Format("(~)表示:{0}", iNum2));
6.位运算 AND 由和号(&)表示,直接对数字的二进制形式进行运算,都是1为1,否则为0
以下的没有类型的都是int,在一个程序中,定义一次就可以了
iNum1 = 25; //25 等于 0000 0000 0000 0000 0000 0000 0001 1001 iNum2 = 3; //3 等于 0000 0000 0000 0000 0000 0000 0000 0011 // //输出//1 等于 0000 0000 0000 0000 0000 0000 0000 0001 Console.WriteLine(string.Format("(&)表示:{0}", iNum1 & iNum2));
7.位运算 OR 由符号(|)表示,也是直接对数字的二进制形式进行运算,都是0为0,否则为1
iNum1 = 25; //25 等于 0000 0000 0000 0000 0000 0000 0001 1001 iNum2 = 3; //3 等于 0000 0000 0000 0000 0000 0000 0000 0011 // //输出//27 等于 0000 0000 0000 0000 0000 0000 0001 1011 Console.WriteLine(string.Format("(|)表示:{0}", iNum1 | iNum2));
8.位运算 XOR 由符号(^)表示,当然,也是直接对二进制形式进行运算,不同为1,相同为0
iNum1 = 25; //25 等于 0000 0000 0000 0000 0000 0000 0001 1001 iNum2 = 3; //3 等于 0000 0000 0000 0000 0000 0000 0000 0011 // //输出//26 等于 0000 0000 0000 0000 0000 0000 0001 1010 Console.WriteLine(string.Format("(^)表示:{0}", iNum1 ^ iNum2));
9.左移运算由两个小于号表示(<<)。它把数字中的所有数位向左移动指定的数量。
iNum1 = 2; //等于二进制 10 iNum2 = iNum1 << 5; //等于二进制 1000000 十进制 64 Console.WriteLine(string.Format("(<<)表示:{0}", iNum2));
10.C# 进制转换(二进制、十六进制、十进制互转)
10.1 十进制转二进制字符串
Console.WriteLine(string.Format("Convert.ToString(10, 2):{0} ", Convert.ToString(10, 2))); //输出: 1010
10.2 十进制转八进制字符串
Console.WriteLine(string.Format("Convert.ToString(10, 8):{0} ", Convert.ToString(10, 8))); //输出: 12
10.3 十进制转十六进制字符串
Console.WriteLine(string.Format("Convert.ToString(10, 16):{0} ", Convert.ToString(10, 16))); //输出: a
10.4 二进制字符串转十进制数
Console.WriteLine(string.Format("Convert.ToInt32('1010', 2) {0}",Convert.ToInt32("1010", 2))); //输出: 10
10.5 二进制字符串转十六进制数
Console.WriteLine(string.Format("二进制字符串转十六进制数 {0:x}", Convert.ToInt32("1010", 2))); //输出: a
10.6 十六进制转二进制字符串
Console.WriteLine(string.Format("Convert.ToString(0xa, 2) :{0}", Convert.ToString(0xa, 2))); //输出: 1010
10.7 十六进制转十进制数
Console.WriteLine(string.Format("Convert.ToString(0xa, 10) :{0}", Convert.ToString(0xa, 10))); //输出: 10