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

做app动态界面的网站有哪些市场营销渠道

做app动态界面的网站有哪些,市场营销渠道,网站开发调试工具,有什么好的网站建设的书操作符详解 正数的原码反码补码相同 负数的原码最高位数是1,正数为0 整数在内存中存储的是补码 负数的左移与右移,移的是补码,打印的是源码 补码-1取反就是原码。 左移有乘2的效果 左移和右移只针对整数。 vs里的右移操作赋采用的是算数右…

 操作符详解

20df79a3aa584d458f41f61cd4fd01f3.png

59ccb1cafc44467090cbee4f0923881d.png

 1f9a8984a35849f7980572a5a7ee82d5.png

正数的原码反码补码相同

负数的原码最高位数是1,正数为0

 整数在内存中存储的是补码

ae916ba8b29b4805a5182aaa105c963b.png

负数的左移与右移,移的是补码,打印的是源码

补码-1取反就是原码。

左移有乘2的效果

22f45f0ad5d94130b0b112354ed389ce.png

左移和右移只针对整数。

vs里的右移操作赋采用的是算数右移,右边丢弃、左边补原符号位

符号位是根据正数还是负数来确定的,正数补0,负数补1.

657de460d8084c82a55f82dcaa8fb389.png

5d85f96f4a70465faa54f36d6000ab0e.png

总结:

计算的是以补码形式计算,打印的是以原码形式存在。

be7d6b6419ed43fb8ebdd09799e03fb8.png

cefaf8bc27a343c68243351d1bbb30fa.png

 计算的时候要用补码,因为整数在内存中存储的是补码。

按位与二个同时为1就得1,有一个不得1就为0.

9b0ce62655884c28bc695265ffb95a09.png

 取反的时候不要动符号位。

异或是相同为0,相异为1

e559e28e2129405abbf7b92c2ae88be1.png

1b312297a1de4e1fa6b9da33cd50f237.png

8d9d15b356c849f6bc389cc6cb264e46.png

0异或a是a  a异或a是0 

异或支持交换律

5167124baa004afa948ed23cedfb0153.png

统计二进制中有多少个1

96f47f4f881941e7b12b0f53a14caad9.png

任何一个数a按位与1如果==1就说明a的二进制最低是1

a&1==0 说明a的二进制最低位是0

c4a59502c50e4c1daba0bd08f226ad17.png

就比如这段二进制代码 a&1 第1位是0 就&1 得0 就跳过最低位,看第二位,如果第二位&1等于1就让COUNT++,一直循环下去。这样就可以知道这段二进制代码有多少个1了。

方法1 利用&和>>操作符计算出二进制代码有多少个1.

98906b083a2942ec8a1e26a350a1446c.png

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{int i = 0;int a = 0;while (~scanf("%d", &a)){int count = 0;for (i = 0; i < 32; i++){if ((a >> i) & 1 == 1){count++;}}printf("%d\n", count);}	return 0;
} 

46313fdf5f6d400692b37499f76a3e13.png

总结
把一个二进制向右移动i个位移到最低位和1进行按位与进行比,如果==1就说明二进制有1 

从右往左看,每次移到的位位数再增加,最高是32位

方法2:利用/2  %2的方法来

bf4d544d04d54c2bbc6551abe6f6f731.png

ee72854b22c845ad99a859e5a4f285ec.png

想得到二进制的每一位 /2  %2来解决这个问题

eeb6c6d905b2468eaa43cf6293695e0c.png

//考虑正负数问题
int count_one_bit(unsigned int n)
{int count = 0;while (n){if ((n % 2) == 1){count++;}n /= 2;}return count;
}
int main()
{int n = 0;scanf("%d", &n);int ret=count_one_bit(n);printf("%d\n", ret);return 0;
}

方法3

利用n=n&(n-1)来达到把n的二进制最右边的1去掉

比如n=-1

1111 n

1110 n-1

1110 n

1101 n-1

1100 n

1011 n-1

1000 n

0111 n-1

0000 n

利用这种效果来实现二进制代码有多少个1

55903e705f8043d5afa31cd007c5b020.png

//判断一个数是否是2的次方数

2ebdcb2770d9419d994cd8e0276ef4dd.png

//判断一个数的是否是2的次方数
//n=n&(n-1)
// 0001
//0010
//0100
//1000
int main()
{int n = 0;scanf("%d", &n);if ((n & (n - 1)) == 0){printf("YES\n");}else{printf("NO\n");}return 0;
}

练习2          二进制位 置0或者置 1 

编写代码将13⼆进制序列的第5位修改为1,然后再改回0?

4e47685dd455409c8a9fe9ce79ad90e1.png

443b91284ab4404e9bc65f924db53f9b.png

//编写代码将13⼆进制序列的第5位修改为1,然后再改回0 ?
// 0001 1101
int main()
{int n = 0;scanf("%d", &n);	// 13  0000 1101 //移到n = n | (1 << 4);  // 0000 1101 | 0001 0000==0001 1101printf("%d\n", n);//复原
//   0001 1101 变成 0000 1101
//   按位与1110 1111 即可   怎么变呢  1的二进制是  0000 0001 左移4位 0001 0000然后取反 1110 1111n = n & ~(1 << 4);printf("%d\n", n);return 0;
}

获取一个整数二进制序列中所有的偶数位和奇数位,分别打印出二进制序列

3412eade4862443d9465e5b2e53c2125.png

总结方法:

输入的数只要往右移,把每一个数移到最低位按位与上一个1就可以获得最低的是否是1了,可以明确判断出你输入的数转换成二进制形式有多少个1.

编程实现:两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同

6397adc8ead54802afced720dc7c2a06.png

0321b6d5f2c34d429764119352c0bcfc.png

10ccecb5a11b4499a63e440e2aa244e5.png

795c1ddb117d43e6a445672d2a2b40a2.png

语法说说支持连续赋值,建议写代码不要这么写。

354688d9e71745e5bbdfe067b7fa12fc.png

53b9e24fc0704b70881bec1a2aef4284.png

96ca1e12b07046a08772322659a89cb5.png

c81495572a44425f89589b854646bc97.png

效果一样。 

强制类型转换。 

f72b86df9f934a7ca69681a1a709cd98.png

7c77415756154d7db08374f96e4bffe0.png

afa731b646854ef0bc808101208aafdf.png

 1是40 2是4/8,3是10,4是4/8

b0257a30324948599e7c25449a0512a0.png

23cbcf305d7f47c294b43831de6b2264.png

逻辑与,左边为假右边就不计算了。

逻辑或,左边为真,右边就不计算了

 0428c84ddcc940ad896e42f1e5a87625.png

逗号表达式是从左到右计算,整个表达式的结果是最后一个表达式的结果。

237dc5030fa34438b0b3e2e51fa8cb22.png

99735537754a49b5bfb6a27c2c83e155.png

 50a22fc78f0d430bbb57a1289a77ddf9.png

b7767d114f4e469788162019df18ae4b.png

edba08ff4104420ab324d7fecd9ba2ac.png

5ac4a07cf140431387b1c46815667539.png

整型提升

b5f9e9c5d7854700a0cf2da7bd61e0a9.png

61256e0a4dc544889cc0b99ba0326d66.png

 d67e20c0c212487e8348debaf7e80abb.pngd3a790ba9ace421d840ad465a36e8a3a.png

20039b6e649a4e5aa4e4082e942ab1ee.png

一个char类型的占1个bit 相对于8个biye位,他要整型提升是因为    难以直接实现两个8比特字节直接相加运算(虽然机器指令
中可能有这种字节相加指令)
。所以,表达式中各种长度可能小于int长度的整型值,都必须先转
换为int或unsigned int,然后才能送入CPU去执行运算。

例如图中的a为5,b为126  先把a的原码写出来相加得出来后8位,首先看最高位是0或者1,是1补1,是0补0,得出来的是补码,因为整数在内存中的存储是补码形式的,然后-1取反得原码,因为打印的都是以原码形式打印的。

a与b会发生整形提升,a与b的值会发生变化。

f8be04e04df044dd9e0fd7a4f2a709a5.png

无符号的数发生整形提升,高位补0

55b1bba5aa7345cfb685333279cc59f4.png

上面的这些大小都小于int类型

下面讨论大小大于或者等于int类型的整形提升

31786e7b602545569db9c4d96149ed1a.png

这些类型都是向上转换的。

91ac16415dbf4a92aa7e140464a5898b.png

数据存储

72dadfe03e46428984b4b1771153d8f4.png

01b15cdb50ce411fa3a09a96ab239664.png

107135d8c33e4403a63af8d2d6e3fc72.png

有符号数直接用int或者 signed int类型的

无符号直接用unsigned int  类型的

05064003bebb4cef89bdb54f16a176f7.png

无符号不分最高位是正数还是负数,统一正数。

a44d106b60f84f7aab17d3d255998764.png

1e2e1ca68c0f4b50bc9e0c98fe6cea05.png

整形在内存中以补码形式存储

1fe5e35fe0a3453daf909930b2d19a7b.png

2f20eef4bf7a4b11a5a64c1d09d7492c.png

1+-1是通过补码形式实现+-的

原码取反+1得补码

补码取反+1得原码

6d4d46e90ffc4d12baeac6dad18de031.png

052ed810fa6a4c24a3da1328301249f1.png

把一个数的高位字节序内容放在低地址处,把一个低位字节序内容放在高地址处。这个叫大端存储

把一个数的高位字节序内容放在高地址处,把一个低位字节序内容放在地地址处 这个叫小端存储

7073939ef6f24af49ab6f83003497eca.png

放与拿相反。比如放进去的是44 33 22 11,拿出去的是11 22 33 44

vs里存的是小端存储模式

63fb56f41f9948669888d14190ecbe81.png

2d699b757e144248be6ce70139404768.png

667cdd5936f346ba9cb74071c9e65569.png

主要看起始地址,对起始地址解引用看是不是1还是0,并且还要强制类型转换成char*类型,int类型一次性访问4个字节。

3ad494e4b4614b30b02c76676d1c7b5c.png

c1b1c77c4d4847caa7f8529f41f02fad.png

0861437787ed4889988aed34bc681fd5.png

30011b4925794b4c822c36960c5a6edb.png

1558d53ff0f047939d03f910a96333fe.png

由于c是无符号数,整形提升的时候最高位是1,由于是无符号数,前面直接补0,所以是255,正数的原码补码,反码一样。

35cc3d7147e2418a89eef06305cee350.png

http://www.yidumall.com/news/48429.html

相关文章:

  • 做推广那个网站比较靠谱江苏搜索引擎优化
  • 雄安邯郸网站制作多少钱在线外链
  • 江门网站建设设计陕西疫情最新消息
  • 怎样免费自己做网站视频系统优化方法
  • 还有什么网站可以做面包车拉货优化设计七年级下册数学答案
  • 公司网站的备案号是如何链接的灰色推广
  • gta5 网站正在建设中重庆网站到首页排名
  • 网页设计作业成品代码免费seo研究学院
  • 购物网站建站系统谷歌广告上海有限公司官网
  • 成都网站建设哪家设计好论坛seo教程
  • 网站开发设计合同重庆高端seo
  • 做网站爱网站有哪些平台
  • 什么牛网站建设网络营销的三大核心
  • 南通网站建设机构营销网点机构号
  • 邢台提供网站建设公司报价bt磁力种子搜索引擎
  • 做网站有没有前途百度联盟项目看广告挣钱
  • 中兴的网站谁做的so导航 抖音
  • 网站qq联系怎么做公司网址有哪些
  • 主流的动态网站开发技术有哪些郑州网站关键词排名技术代理
  • 青岛网站开发学校怎么推广公众号让人关注
  • 去哪个网站有客户找做标书的如何实现网站的快速排名
  • 外贸网站空间选择苏州网站建设
  • 如何做网站推广在找产品营销推广吗排名优化公司哪家靠谱
  • 成都设计电商网站产品推销方案
  • 输入公司名字找不到公司网站长春网站建设公司哪个好
  • 衡水移动网站建设费用学做网站培训班要多少钱
  • 在线图片处理工具免费关键词优化包含
  • 动漫网站在线免费观看买链接官网
  • 南京手机网站百度指数官网查询入口
  • 网站数据分析的重要性淘宝seo优化是什么意思