当前位置: 首页 > news >正文

字节序和位操作

文章目录

  • 一、字节序
  • 二、位操作
    • 2.1.位移
      • 2.1.1.左位移
      • 2.1.2.右位移
    • 2.2.取反
    • 2.3.位与
    • 2.4.位或
    • 2.5.置位
    • 2.5.清除

一、字节序

例如一个变量:int a = 0x12345678,每两个数为一个 byte,这个值有 4 个 byte,将它存放在内存里需要 4 个 byte,12 是高位,78 是低位,它的存储方式有两种:

  • 小字节序,little endian:低位数据存放在低地址,高位数据存放在高地址

在这里插入图片描述

  • 大字节序,big endian:高位数据存放在低地址,低位数据存放在高地址

在这里插入图片描述

二、位操作

2.1.位移

2.1.1.左位移

例如一个变量 int a = 0x123,左移 2 位:

0x123 = 0001 0010 0011
左移两位后:
0x123 << 2 = 0x48C
0100 1000 1100 = 0x48C

2.1.2.右位移

例如一个变量 int a = 0x123,右移 2 位:

0x123 = 0001 0010 0011
左移两位后:
0x123 >> 2 = 0x48
0000 0100 1000 = 0x48

2.2.取反

例如一个变量 int a = 0x123,int b = ~a:

0x 0000 0123 = 0000 0000 0000 0000 0000 0001 0010 0011
取反之后:
1111 1111 1111 1111 1111 1110 1101 1100 = 0x FFFF FEDC

2.3.位与

两数相与,相当于数学里的乘法,有 0 就为 0:

abc
111
100
010
000
int a = 0x123;
int b = 0x456;
int c = a & b;
0x123 = 0001 0010 0011
0x456 = 0100 0101 0110
c = 0000 0000 0010 = 0x2

2.4.位或

两数相或,相当于数学里的加法,有 1 就为 1:

abc
111
101
011
000
int a = 0x123;
int b = 0x456;
int c = a | b;
0x123 = 0001 0010 0011
0x456 = 0100 0101 0110
c = 0101 0111 0111 = 0x577

2.5.置位

将某一位置 1,例如:将变量 int a = 0x123 里的 7、8 位置 1:

int b = a | (1 << 7) | (1 << 8);
0x123 = 0001 0010 0011
(1 << 7) = 0000 1000 0000		//从最低位为0开始数7个位
(1 << 8) = 0001 0000 0000		//从最低位为0开始数8个位
b = 0001 1010 0011 = 0x1A3

2.5.清除

将某一位置 0,例如:将变量 int a = 0x123 里的 7、8 位置 0:

int b = a & ~(1 << 7) & ~(1 << 8);
0x123 = 0001 0010 0011
~(1 << 7) = 1111 0111 1111		//从最低位为0开始数7个位
~(1 << 8) = 1110 1111 1111		//从最低位为0开始数8个位
b = 0000 0010 0011 = 0x23
http://www.dtcms.com/a/424195.html

相关文章:

  • 没有公司自己做网站百度云wordpress怎么搭建网站
  • 《Python 中的“面向接口编程”:抽象基类的力量与实践指南》
  • 25.渗透-.Linux基础命令(十七)-Linux系统状态管理(安全加固-删除无关账户)
  • wordpress响应式网站模板下载企业手机网站建设流程图
  • ollama离线部署加载Bge-M3向量模型
  • 全站仪快速建站本地建站工具
  • AI照片转二次元
  • A股大盘数据-20250929分析
  • 攻防世界-Web-upload1
  • 如何做DJ网站网站兼容ie代码
  • 基于海思Hi3798MV200 Android7.0实现电影播放蓝光导航功能
  • 北京便宜网站建设网页设计策划案范文
  • 健康类网站模板北京酒店团购网站建设
  • 儿童玩具网站建设策划书国家企业信息系统官方
  • 2025-9-29学习笔记
  • 90自己做网站建站模板工程造价
  • 给客户建完美网站后端开发是干什么的
  • IEEE出版 | 2026年计算智能与机器学习国际学术会议(CIML 2026)
  • 图像分割:PyTorch从零开始实现SegFormer语义分割
  • 解决 Web 应用加载地图资源时的 HTTP 与 HTTPS 混合内容问题
  • 外贸网站使用什么品牌国外主机网站验收流程
  • 推荐个在广州做网站的专业微网站电话号码
  • 北海网站设计公司做网站在国外发图片
  • 东莞网站建设美丽做网站的IDE
  • Python基础(②④序列化和伪造Session)
  • C++ 标准库排序算法 std::sort 使用详解
  • 进程间通信——环境问题
  • html做网站步骤大全泉州网站建设咨询
  • 网站备案要多长时间网站建设的功能需求分析策划书
  • 安卓基础007-第一章结束