当前位置: 代码迷 >> C语言 >> a 20bit unsigned number解决方法
  详细解决方案

a 20bit unsigned number解决方法

热度:6317   发布时间:2013-02-26 00:00:00.0
a 20bit unsigned number
    我对b,B,KB,这些和int ,long long int的关系弄不清楚,希望路过的大神赐教。麻烦要通俗易懂的,比如已知(a 20bit unsigned number)  我在写程序时对这个数怎么定义?int? long long int?

------解决方案--------------------------------------------------------
int一般是32bit
可以这样
struct _20bINT
{
    int d:20;
};
这样里面的d的大小就是20bit
------解决方案--------------------------------------------------------
1kB=1024B,1B=8bit;
nt 《=long=long in
------解决方案--------------------------------------------------------
long long int不是所有编译器都支持的,有些支持这种数据类型的,可能是真支持,也可能是模拟支持,总之它不是标准类型。在.NET4框架中,有64位的长整型数据,这个框架下的所有语言都能使用,但不是所有语言本身都有定义这样的数据类型,也就是说,你尽可使用_int64或System.Int64来定义64位的整数,但未必有long long这样的定义。

VS2010的.NET4中,C#语言的int是32位的,long是64位的,但其C++的int和long都是32位的,后者支持64位的long long类型。long,对前者,编译后的BCL数据类型是System.Int64,对后者则是System.Int32,把long long编译为System.Int64。这个框架下所有语言的数据类型,在编译后都是这种BCL数据类型,是看不出来原先用什么定义的,而且,所有语言编译之后使用的执行库,都是一样的,各种语言之间的执行效率几乎没有差别,差别在你熟悉哪种语言编程而已。

------解决方案--------------------------------------------------------
unsigned   int   0~4294967295   
int   2147483648~2147483647 
unsigned long 0~4294967295
long   2147483648~2147483647
long long的最大值:9223372036854775807
long long的最小值:-9223372036854775808
unsigned long long的最大值:1844674407370955161

__int64的最大值:9223372036854775807
__int64的最小值:-9223372036854775808
unsigned __int64的最大值:18446744073709551615
------解决方案--------------------------------------------------------
引用:
我对b,B,KB,这些和int ,long long int的关系弄不清楚,希望路过的大神赐教。麻烦要通俗易懂的,比如已知(a 20bit unsigned number)  我在写程序时对这个数怎么定义?int? long long int?

1b = 1bit 1bit只能表示0或1.
1B = 8bit
1KB = 1024B
int 占4个B,也就是32bit
long 也是4个B
long long 8个B
unsigned 只是表示作为无符号数处理.
a 20bit unsigned number 可以写成:
unsigned type number;
number = number & 0x003fffff;把上10bit清掉就ok啦 
  相关解决方案