首页 > 其他分享 >关于 memset

关于 memset

时间:2022-10-07 22:24:45浏览次数:47  
标签:10 texttt 字节 memset 关于 数组 sizeof

简要

\(\texttt{memset}\) 原用处是初始化 \(\texttt{char}\) 用的,故是按 \(\texttt{1}\) 个字节为单位初始的。

但现在也用于数组。

用法

memset(数组名字,值,sizeof 数组名字)

这里的 sizeof 并非函数,而是单目运算符

例:

#include<bits/stdc++.h>
using namespace std;
int a[114514];
signed main()
{
	memset(a,0x3f,sizeof a);
	cout<<a[1]<<"\n";
 	return 0;
}

运行结果:

1061109567

为什么?

因为上面说是按照 \(1\) 个字节初始的,\(1\) 个 \(\texttt{int}\) 占 \(4\) 个字节,

所以每个数组的值是 \(\texttt{0x3f3f3f3f}\),也就是 \(10\) 进制下的 \(1061109567\)

注意:里面的数值是以补码存储的

  • 正数和原码一样

  • 负数在反码基础上 \(+1\).

所以 memset(a,255,sizeof a) 后每一位就是 \(11111111\),四位就是 \(32\) 个 \(1\)

但由于第一位是符号位,且是以补码形式存储的。

所以该数为负,并且 \(111\dots\) 共 \(31\) 个 \(1\) \(- 1\) (补转原)后取反就为 \(1\)(省略前导 \(0\))

转十进制就是 \(1\),加上符号就是 \(-1\)。

所以每一个 \(a_i\) 是 \(-1\)。

补充

当数值转 \(2\) 进制超过 \(8\) 位那超过的就舍掉,保留后 \(8\) 位。

例:

memset(a,257,sizeof a)

\(257_{10} = 100000001_{2}\)

后八位就是 \(00000001\)

四位就是 \(00000001000000010000000100000001\)

也就是 \(16843009_{10}\)

所以每一个 \(a_i\) 是 \(16843009\)

后记

如果有问题、意见欢迎私信本蒟蒻或者在评论指出

求点赞

标签:10,texttt,字节,memset,关于,数组,sizeof
From: https://www.cnblogs.com/lzx19/p/about-memset.html

相关文章

  • 快速理解memset
    memset函数是在头文件:cstring 或 memory中 memset函数的作用是将数字以单个字节逐个拷贝的方式放到指定的内存中去memset(a,0,sizeofa);int类型的变量一般占......
  • 解决IntelliJ Idea与Tomcat10关于Servlet5.0不匹配的问题
    在学习Mybatis的时候,创建了一个JavaWeb程序来做试验。出现了以下错误,在网上查了很多,最后在网上发现是Idea里面的Serlvet4.0与Tomcat10不匹配的问题。jakarta.servlet.S......
  • 关于学习
    学习的态度人生在世,学习是必不可少的。日积月累的学识能成为自己的一把利剑,斩断一切虚茫。所以,对待学习不能以功利的方式。升学和求职当然需要必要的针对性的准备,但是绝不......
  • 关于青云-windows-server-服务器不能连接外网主机的远程桌面
    今天笔者,准备使用青云上的一台windows虚拟机,使用远程桌面连接笔者的其他windows服务器却始终连接不通,通过telnet也测试了、连接外部windows主机的TCP/3389就是不通最后在......
  • Kotlin | 关于协程异常处理,你想知道的都在这里
    引言关于协程的异常处理,一直以来都不是一个简单问题。因为涉及到了很多方面,包括异常的传递,结构化并发下的异常处理,异常的传播方式,不同的Job等,所以常常让很多(特别是......
  • Kotlin | 关于协程异常处理,你想知道的都在这里
    引言关于协程的异常处理,一直以来都不是一个简单问题。因为涉及到了很多方面,包括异常的传递,结构化并发下的异常处理,异常的传播方式,不同的Job等,所以常常让很多(特别是......
  • 关于const在类中的一些总结
    const对象只能调用类的const方法,一般对象可以调用所有对外方法。 类的const方法实现内部:不能改变类的数据成员值,但是若有形参是此类的对象,且不是const型对象,那么通过这......
  • 关于git的知识
    gitadd提交到暂存区gitcommit将暂存区的提交到当前分支gitcheckout--test.txt撤销修改没提交暂存区:撤回和原来的一样提交到暂存区:修改后再撤销=》恢复提交后的......
  • 关于blender/pmx/fbx/mmd/骨骼/材质等等等等的问题所有疑问和解决方法
    1.关于将pmx文件导入blender,进行fixmodel之后,导致材质混乱的问题ansR:blender版本问题,建议使用blender2.9.0(看一些人的教程,理论上2.8.7也可以),已知的是3.3肯定会有这个问题......
  • 关于Centos-8.X-操作系统不能使用yum源的解决方法
    今天笔者准备做一些实验时,发现Centos8.x操作系统不能使用官方的yum源了,提示:Error:Failedtodownloadmetadataforrepo'appstream':Cannotprepareinternalmirro......