有一个int值为0x010301u(0x表示十六进制,u表示无符号)
在内存中是这样分布的
00000001 01
00000002 03
00000003 01
00000004 00
有一个int值为0x010301u(0x表示十六进制,u表示无符号)
在内存中是这样分布的
00000001 01
00000002 03
00000003 01
00000004 00
转载于:https://www.cnblogs.com/DreamCreator/archive/2009/07/03/1516491.html
进制是指当某个表示数量的符号达到一定数量时,就用一个新的符号来表示这些符号。比如古埃及用 | 来表示1,用 ||来表示2,以此类推,当达到10个符号时就用倒“U”的符号来表示10,当达到100、1000、10000、.....时就用相应的符号来代表,而其余所有数都可以用这些符号堆放在一起来表示,当相同的符号累计到10个时就用更高一级的符号来替换。所以古埃及是十进制的,这与十进位制不同。古埃及表示数量的符号可以按照任意位置摆放,符号表示的数量与位置无关。由于每达到10个符号就需要发明新的符号来替换掉原来的10个符号,所以是很麻烦的。
进位制与进制的不同在于每达到10个相同的符号时不再使用新的符号来替换,而是向高位进一,也就是低位的数量累积到10个时就向高位进一,符号在不同的位置上代表的数量级不同。比如:2在个位上代表数量2,在十位上代表2个10,在百位上代表2个100,也就是符号在不同的位置上有不同的位权(权重),叫做位值制。R进制只需要分别用符号来表示0 ~ R-1的数量,然后当每个位置上的数目达到(R - 1) + 1时就向高位进一,高位的一就代表它的低一位的数量R。比如2进制,只要用0、1两个符号,然后当个位上的数量达到2时就向十位进一,当十位上的数量达到2时就向十位进一,以此类推;10进制,需要用0、1、2、3、4、5、6、7、8、9十个符号,然后满十进一。其中,0代表无,1代表基本单位,其余的符号都是代表它的前一个符号加上基本单位1,即:2 = 1 + 1, 3 = 2 + 1,以此类推。当要表示9 + 1时,就不再使用新的符号,因为这样就没完没了了,数量是有无限多的,这时就向十位进1,十位的1表示有一个9之后的数量,也就是用10来表示9之后的数量。而10之后的数量只要将个位变成1,这样11就表示1个10加上1,十位的位权是10,个位的位权是1,以此类推。所以在进位制下, 一个数字中每个位置上的符号都代表了不同的大小,然后这些符号代表的大小相加就是这个数字的大小。通常用如下多项式来表示进位制记数系统下的数量:
转载注明出处即可。无需经过本人同意。
本文章声明如下:此内容为网课内容的总结以及本人的总结。如存在侵权,请通知本人删除文章。
除2取余倒排序
乘2取整正排序
(小数位的丢失)
有符号开辟(一般)2个字节 32767,-32768
unsigned short %hu signed short = short ;%hd int %d unsigned %u long = signed long;%ld unsigned long; %lu 输出%f %lf %d %g
常量
O 八进制 O10
ox 十六进制 Ox2
u无符号整数 50U
长整数 -123L
实数 12. .5
整型默认signed int,加U或L可改变类型
实型默认double
宏常量
#include<stdio.h> #include<math.h> #define PI 3.141 / / constant define PI 3.141 int main() { double r,area; r=20;area=rould(PI*r*r*100)/100; printf("area=%.2lf\n",area); return 0; }
https://blog.csdn.net/u010683091/article/details/70332286
1. BitConverter.ToUInt16()的用法,是把两个字节转换为无符号整数,如:205 56 这两个字节的16进制是 CD 38 那么转为无符号整数 应该倒过来排 即 38CD 这个数转为无符号十进制整数就是 14541
2. BitConverter.ToString()的用法,这个就是把字节或字节数组转换为十六进制或十六进制的字符串形式,中间用“-”连接