首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

定义一个函数,在该函数中可以实现任意两个整数加法。java实现

这道题实际上是一道面试题拓展,原题是要求打印1到最大n位数。原题是这样描述输入数字n,按顺序打印出1到最大n位十进制数。...比如输入3,则打印出1,2,3,4,5一直到最大三位数999。拿到这道题之后,对于没有大数经验面试者估计立马就想到了一种简单解法。首先求出这个最大n位数,然后来一个for循环1开始逐个打印。...当两个整数都是正数时候直接相加结果为正数,同为负数时候取两者绝对值相加然后在结果前加一个负号。...假若是一正一负,则用两者绝对值相减,用绝对值大数减去绝对值小数,当正数绝对值大时候相减结果为正数,当负数绝对值大时候相减结果为负数,结果为负数时在相减结果前加一个负号即可。...一正一负 2.同时为正或同时为负数 // 对于第一种情况取绝对值做减法运算,如果负数绝对值更大则结果是负数,否则结果为正数 // 对于第二种情况 直接做加法运算 同为正数 结果则为正数 否则结果为负数

1.9K20
您找到你想要的搜索结果了吗?
是的
没有找到

可能是最通俗易懂 Java 位操作运算讲解

32 位操作系统就需要通过 2 个指令周期才能完成指令读取,而对应 64 位操作系统因为一次能够读取 64 bit 内容,所以它在一个指令周期就能够读取指令。...但对于一个 int 或者其它整数类型如 (long)数值而言还要注意是,它最高位是符号位。 最高位为0表示正数。 最高位为1表示负数 原码 将一个数字转换成二进制就是这个数值原码。...int a = 5; //原码 0000 0000 0000 0101 int b = -3; //原码 1000 0000 0000 0011 反码 分两种情况:正数负数 正数 正数反码就是原码...5 原码:0000 0000 0000 0101 -3 原码:1000 0000 0000 0011 -3 反码:1111 1111 1111 1100 补码 仍然分正数负数两种情况 正数...负数 负数补码在反码基础上加1。

98520

2021-09-12:请你来实现一个 myAtoi(string s) 函数,使其

函数 myAtoi(string s) 算法如下:读入字符串并丢弃无用前导空格,检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。确定最终结果是负数还是正数。...读入下一个字符,直到到达下一个非数字字符或到达输入结尾。字符串其余部分将被忽略。将前面步骤读入这些数字转换为整数(即,"123" -> 123, "0032" -> 32)。...必要时更改符号(步骤 2 开始)。如果整数数超过 32 位有符号整数范围 −231, 231 − 1 ,需要截断这个整数,使其保持在这个范围内。...除前导空格或数字后其余字符串外,请勿忽略 任何其他字符。 福大大 答案2021-09-12: 数位用负数。注意两个byte数字相减,始终是正数,不可能是负数。 代码用golang编写。...0' || chas[i] > '9' { return false } } return true } 执行结果如下: [图片] *** 左神java

43610

被字节”装“到了,只要你能看”完“这题目,就算你过?

函数 myAtoi(string s) 算法如下: 读入字符串并丢弃无用前导空格 检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。确定最终结果是负数还是正数。...读入下一个字符,直到到达下一个非数字字符或到达输入结尾。字符串其余部分将被忽略。 将前面步骤读入这些数字转换为整数(即,"123" -> 123, "0032" -> 32)。...2.2# 示例也很长,很快就看完了啦 示例 1: 输入:s = "42" 输出:42 解释:加粗字符串为已经读入字符,插入符号是当前读取字符。...条件一是在告诉我们要先去除前置空格 检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。确定最终结果是负数还是正数。如果两者都不存在,则假定结果为正。...:条件2在暗示我们要注意开头"+"和"-" 读入下一个字符,直到到达下一个非数字字符或到达输入结尾。字符串其余部分将被忽略。

34820

Python 学习记录(一)

还有一种则是编译型语言,这种就是“直达车”,半路不停,意思就是说这种语言要将源代码全部编译完成之后才去执行,中途不再需要重新读取代码。...,0开始,而与java语言不同是,python语言支持右往左查询下标 ,也就是倒着查, 比如说我要查询倒数第一个,则 greeting[-1],那么得出来就是"0",其实有些奇怪,为什么 第一个不是...#步长也可以设置为负数, 对于正数步长, py会再序列头部向右提取元素, 直到最后一个元素,对于负数步长 #,则是序列尾部开始想左提取元素,直到第一个元素。...总结: 正数必须让开始点小于结束点, 而负数步长必须让开始点大于结束点. 如果步长是负数,那么分片中第一个数是尾数开始向头部计算。...如果步长是正数,那么分片中第一个数是从头部开始向尾部计算

21410

LeetCode【8】-- 字符串转换整数

函数 myAtoi(string s) 算法如下: 读入字符串并丢弃无用前导空格 检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。确定最终结果是负数还是正数。...读入下一个字符,直到到达下一个非数字字符或到达输入结尾。字符串其余部分将被忽略。 将前面步骤读入这些数字转换为整数(即,"123" -> 123, "0032" -> 32)。...除前导空格或数字后其余字符串外,请勿忽略 任何其他字符。 示例 1: 输入:s = "42" 输出:42 解释:加粗字符串为已经读入字符,插入符号是当前读取字符。...示例 2: 输入:s = " -42" 输出:-42 解释: 第 1 步:" -42"(读入前导空格,但忽视掉) ^ 第 2 步:" -42"(读入 '-' 字符,所以结果应该是负数...; 但是在这个过程中,我们依然需要考虑数字溢出问题,这个问题其实和我们上一道题【反转整数】一样: 针对这种情况,我们可以在加和之前判断,针对大于0情况,如果大于最大值整除10,或者等于最大值整除10

63110

数值信息机器级存储

反码:正数反码是其原码本身,负数反码为原码中除符号位不动其余位取反结果。...补码:正数补码依然是其原码本身,负数补码即原码中符号位不变,其余真值为取反再加一结果。...正数正数 负数负数 正数负数 首先,对于正数负数情况,没什么好说,不可能产生溢出问题。 对于正数正数情况而言,可能会产生「负溢出」。...因为计算机在进行加法运算时候,如果两个浮点数阶码不同,会首先统一一下两者阶码,然后将他们尾数部分相加。...首先,第一位符号位表示该浮点数是正数。 然后接着读取八个比特位(无符号),减去偏置值 127 得到实际阶码值。 最后 23 个比特位表示该浮点数尾数部分,加上一就能得到实际尾数值。

1.3K60

C语言(2)----数据类型、变量以及操作符

运算符 - ⽤来改变⼀个值正负号,负数前⾯加上 - 就会得到正数正数前⾯加上 - 会得到负数。 注意:这里正数可以省略,可以理解为占一个字符位空白符,所以+-a就是 -a。...scanf scanf是将变量值输出在屏幕上。其实对于这两个函数就可以理解为,printf是将输入内容打印出去,也就是输出,而scanf是将想要输出内容打到到计算机中,也就是输入。...scanf() 语法跟 printf() 类似。 但是有不同地方,对于变量必须输入&运算符,因为它传递不是值,而是地址,即将变量地址指定用户输入值。...也就是说当用户输入数据时候,即使两个数据间空格甚至换行,都不会影响函数解读。...这句话意思就是,在测试你输入了几个数时候,你输入几个数,它读取就是几个数,但是如果发生了错误或者已经读取到结尾了,比如它要你输入三个数但你一个都不输入,那么它就会报错返回EOF,注意EOF在返回值中以

9210

求一个数组中子数组最大和算法(Java实现)

原题及解答     来自《小技巧求一个数组中子数组最大和》;     题目:     输入一个整形数组,数组里有正数也有负数。数组中连续一个或多个整数组成一个子数组,每个子数组都有一个和。...例如输入数组为 1, -2, 3, 10, -4, 7, 2, -5,和最大子数组为 3, 10, -4,7, 2, 因此输出为该子数组和 18。  ...解答:  【只有子数组“前半部分”和为正数时,子数组求和才有可能最大】,在这个trick条件下,只需要遍历一次数组就可以。算法是:当从头开始遍历元素求和为正数时,继续向后遍历。...,当时经过实践和思考,这个算法同样适用于全是正数,或者全是负数情况。...当全为正数时,最大和自然就是所有元素和,当全为负数时,最大和自然就是其中最大那个负数值。通过此算法都能得到相应结果。

1.6K80

JavaScript基础③

int类型,但是打印出来却是string类型,这个与localStorage本身特点有关,localStorage只支持string类型存储。...Cookie中maxAge用来表示该属性,单位为秒。Cookie中通过getMaxAge()和setMaxAge(int maxAge)来读写该属性。maxAge有3种值,分别为正数负数和0。...如果maxAge属性为正数,则表示该Cookie会在maxAge秒之后自动失效。浏览器会将maxAge为正数Cookie持久化,即写到对应Cookie文件中(每个浏览器存储位置不一致)。...maxAge设置为负数,能看到Expires属性改变了,但Cookie仍然会存在一段时间直到关闭浏览器或者重新打开浏览器。...值得注意是,客户端读取Cookie时,包括maxAge在内其他属性都是不可读,也不会被提交。

53810

神奇二进制(二)浮点数

直到1985年,IEEE(电气和电子工程师协会)统一了浮点数表示规则,后来此标准被称为IEEE745浮点标准,大大提高了科学应用程序在不同机器上可移植性。...IEEE 754规定,在计算机内部保存M时,默认这个数第一位总是1,因此可以被舍去,只保存后面的xxxxxx部分。比如保存1.101时候,只保存101,等到读取时候,再把第一位1加上去。...单精度浮点数表示如下: image.png 双精度浮点数表示如下 image.png 第一位是符号位,0表示正数,1表示负数,这个很好理解。...指数部分有点特殊,因为指数有正数也有负数,指数部分没有符号位,那如何表示正数负数呢?...聪明科学家找到了一个方法,取一个中间值,小于中间值表示负数,等于中间值表示0,大于中间值表示正数,中间值定义如下: image.png 单精度中间值是127 image.png 双精度中间值是

44210

为什么一个byte存储范围是-128~127?

本人技术路线Java全栈工程师一路奔向大数据开发、数据挖掘领域,如今终有小成,愿将昔日所获与大家交流一二,希望对学习路上你有所助益。...由于在正数下计算是没问题,那么就可以规定:正数反码等于原码,负数反码为除去符号位,其他取反。...相反数概念我们可以知道,一个正数肯定存在一个与之对应相反数,对于整数来说我们只要直接改变一下符号位就行了。But!...其实,特殊不只是这一个数字,如对于Javashort,占用两个字节,最高一位为符号位,那么就会出现这个数字:1000 0000 0000 0000,原码上看也是-0,对于int类型也是一样,那么这个问题就可以总结为...最大正数:0111 1111 -> 2^8 - 1 = 127 最大负数:1000 0000 -> -2^8 = -128 对于其他正数类型范围也是如此: Javashort:2字节 -> -

94531

学弟不懂原码反码补码,气我给女朋友讲了一夜

伟大设计者们当然考虑了这个问题,他们将数值二进制长度分为不同长度供你使用,在java中有这8种基本数据类型(1byte=8bit): 基本类型 长度(byte) 包装类型 取值范围 byte 1 Byte...所以这点和负数加法规则矛盾,并且计算机也只会加法。咱们只能另它计。...也就是如果你用反码表示这个数,用它进行加法运算,正数范围内玩没问题,负数范围内玩也没问题,但是当你负数迈到正数时候会经过两个0(-0,+0)两个零重复表示了。 这该如何表示呢?...这个也就是说你可以把负数看成一部分,正数看成一部分。而每个部分数值也是相同:无论负数还是正数出去符号位,都是 000 0000~111 1111(byte为例)分布。...如果前面符号位为1就是表示负数负数最小到最大(-128 ~ -1)共128个,如果是0就是正数最小和最大(0 ~ 127)共128个。这样理解是不是容易很多呢!

46920

(计算机对整型存储)

(Integer.MAX_VALUE)); 拿到int最大值,是1111111111111111111111111111111,31个1,首位是0(代表正数,省略了) 那我们给int最大值+1,会发生什么呢...System.out.println(Integer.MIN_VALUE); 结果:-2147483648 发现int正数最大值+1,变成了他负数最小值。 why?...31个1,这是最大正数补码) + 1 应该为10000000000000000000000000000000(第一位为1,后面31个0,最小负数补码),应该是-0啊,为什么是-2147483648?...现在就需要我们开篇第一句核心精髓了,计算机中存储数值,都是以二进制补码形式存入正数补码是他本身,负数补码是反码加一。 还有补码补码是原码 我们先看看-0补码是多少?...还有一点,你输入非十进制数,就是他补码,计算机是不用在进行补码转换,直接存入内存。

81340

力扣7-整数反转&力扣8-字符串转换整数 (atoi)

示例 1: 输入:x = 123 输出:321 示例 2: 输入:x = -123 输出:-321 示例 3: 输入:x = 120 输出:21 示例 4: 输入:x = 0 输出:0 提示: -231...原整数为正数时 最难理解情况:原整数为负数时已经讨论完毕,正数更符合日常习惯,相对容易,在这里,只讨论,TMP等于INT_MAX/10-1这种情况。...函数 myAtoi(string s)算法如下: 读入字符串并丢弃无用前导空格 检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。 确定最终结果是负数还是正数。...读入下一个字符,直到到达下一个非数字字符或到达输入结尾。字符串其余部分将被忽略。 将前面步骤读入这些数字转换为整数(即,"123" -> 123, "0032" -> 32)。...对于封装内容,无非处理正数和处理负数这两种情况,我们可以设置参数为字符串和bool类型,bool用于标注正负,函数内部根据bool值分别调用具体函数实现。

34500

挑战30天学完Python:Day9逻辑语句-条件

') else: print('A 是正数') 上边逻辑判断为假,因此else块被执行。...第9天练习 练习1级 使用input("输入年龄:")获取用户输入。如果用户年龄在18岁以上,请给出反馈为:你年龄可以学开车了。如果得到年龄在18或以下,请给出还差几岁可以开车。...输出如: 输入年龄: 30 你年龄可以学开车了。 输入年龄: 15 你还需要 3 年才可以学开车。 使用 if...else 比较 my_age 和 your_age。谁年龄更大呢?...输入第一个数字: 4 输入第二个数字: 3 比较结果:4 大于 3 练习2级 写一个段逻辑代码,并根据分数范围给出他们对应等级。...如果用户输入为:September, October或November,则季节为Autumn; 如果输入是December、January或February,这个季节是Winter; March,April

18240

java integer最大值_java int型最大值最小值,最大值+1,最小值-1

对于一个二进制数,正数补码是其本身,负数补码是所有二进制位取反再加一。 int变量中,第一位是符号位(0表示正数,1表示负数)。 我们下面来实际分析int型中正数负数是怎么表示。...,因为是负数,其补码是 111 1111 1111 1011,把符号位和数值合起来,得到int型-5再内存中32位二进制码是 1111 1111 1111 1011 int型能表示最大正数 int...因此,int型能表示最大正数二进制码是0111 1111 1111 1111,也就是2^31-1。...最大值+1 最大二进制码是0111 1111 1111 1111,加一以后二进制码是1000 0000 0000 0000,是int所能表示最小负数。...最小值-1 最小值二进制码是1000 0000 0000 0000,减一后称为0111 1111 1111 1111,是最大正数。 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。

1.9K10

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券