大多数 Intel 兼容机采用小端模式,IBM 和 Sun 公司的机器大多数机器采用大端法。
对于很多新的处理器,支持双端法,可以配置成大端或者小端运行。例如基于 ARM
架构的处理器,支持双端法,但是 Android 系统和 iOS 系统却只能运行在小端模式.
下面是代码测试,获取16进制表示:
#include <stdio.h>
#把指针看成指向一个字节的序列,而不是对象的原始数据类型
typedef unsigned char * byte_pointer ;
void show_bytes ( byte_pointer start, int len){
int i;
cout<<len<<endl;
for(i = 0; i < len; i++){
// cout<<"==start[i]:"<<start[i]<<endl;
printf ( "%.2x " , start[i]);
}
printf ("\n");
}
void show_int (int x){
show_bytes ((byte_pointer) &x, sizeof (x));
}
int main()
{
show_int(15);
return 0;
}
在linux 64位intel cpu上运行可以看出是小端法表示.
逻辑/算术左右移:
当数字不带符号时,右移是左边补零,也就是采用逻辑右移;
当数字带符号时,右移是左边补1,也就是采用算术右移;
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- awee.cn 版权所有 湘ICP备2023022495号-5
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务