位运算与及大小端机
来源:互联网 发布:北京java培训 编辑:程序博客网 时间:2024/06/02 03:28
位运算与及大小端机
位运算:
1,按位与(&),按位或(|),按位异或(^),按位取反(~),左移(a<<b),带符号右移(>>),java中还存在无带符号右移(>>>)
a & b 的话就是将a和b转化成二进制按位来,当两个都是1是就去1,有一个0就取零;
a | b 的话就是将a和b同样处理,当两个中有一个1,就去1;
a ^ b就是二进制按位来,当两个不一样时就取1,一样时就取零;
~a就是按二进制位,挨个取反;
a << b就是a的二进制按位向左移动b位,相当于乘以2的b次方;
a >> b也是同一个道理,相当于除于2的b次方;(符号位一起)
a >>> b也是右移,不过不带符号。。。
大小端机
1,大端机就是高位在前(低地址),小端机就是地位在前(低地址);
小端机:小端机的优点在于强制转换,比如unsigned long long -> unsigned char直接取低地址的就完成了任务,不需要遍历完整个数据;
大端机:大端机的优势体现在数据传输方面,在数据传输的时候,从低地址开始传输,传输以为就记录一位,然后以后每一位传过来直接位运算左移,大大提升了效率。
然后要说下机器是大小端机哪一种的判断:
#include <stdio.h>
int main(){
unsigned int data, *point;
point = &data;//point指针指向存储data的空间
*point = 0x12;//
if(0x12 == data){
printf("Little-endian\n");
}
else if(0x00000012 == data){
printf("Big-endian\n");
}
else{
printf("Unable to determine\n");
}
return 0;
}
很明显这是在使用不同的数表示方式进行检测。
位运算:
1,按位与(&),按位或(|),按位异或(^),按位取反(~),左移(a<<b),带符号右移(>>),java中还存在无带符号右移(>>>)
a & b 的话就是将a和b转化成二进制按位来,当两个都是1是就去1,有一个0就取零;
a | b 的话就是将a和b同样处理,当两个中有一个1,就去1;
a ^ b就是二进制按位来,当两个不一样时就取1,一样时就取零;
~a就是按二进制位,挨个取反;
a << b就是a的二进制按位向左移动b位,相当于乘以2的b次方;
a >> b也是同一个道理,相当于除于2的b次方;(符号位一起)
a >>> b也是右移,不过不带符号。。。
大小端机
1,大端机就是高位在前(低地址),小端机就是地位在前(低地址);
小端机:小端机的优点在于强制转换,比如unsigned long long -> unsigned char直接取低地址的就完成了任务,不需要遍历完整个数据;
大端机:大端机的优势体现在数据传输方面,在数据传输的时候,从低地址开始传输,传输以为就记录一位,然后以后每一位传过来直接位运算左移,大大提升了效率。
然后要说下机器是大小端机哪一种的判断:
#include <stdio.h>
int main(){
unsigned int data, *point;
point = &data;//point指针指向存储data的空间
*point = 0x12;//
if(0x12 == data){
printf("Little-endian\n");
}
else if(0x00000012 == data){
printf("Big-endian\n");
}
else{
printf("Unable to determine\n");
}
return 0;
}
很明显这是在使用不同的数表示方式进行检测。
0 0
- 位运算与及大小端机
- 写程序判定大小端及利用位运算进行大小端转化
- 位域与大小端
- 位域与大小端
- 位域与大小端
- 位运算及应用
- 位运算及应用
- 位运算及技巧
- 位域操作与大小端
- 位域与大小端问题
- 32位机与64位机数据大小
- 赋值运算与位运算
- &与&&的区别及使用位运算做乘法
- 位运算符与位运算
- 枚举与位运算
- 位运算与余数
- 二进制与位运算
- 位运算与加减法
- [BZOJ1051][HAOI2006]受欢迎的牛(Tarjan求强连通分量)
- 数据结构与算法学习02:链表
- Android Studio常用快捷键
- Linux学习系列-IO模型
- python中input与raw_input()
- 位运算与及大小端机
- [BZOJ1901]Dynamic Rankings(动态主席树)
- ZOJ 3785 What day is that day?【思维+递推循环节】
- 矩阵卷积
- android控件TabHost浅析
- 优先队列堆
- LeetCode-342. Power of Four
- intent传递有没有大小限制,是多少?
- Button、ImageButton、和EditText等控件会主动抢夺焦点