• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 03:47
CEST 09:47
KST 16:47
  • Home
  • Forum
  • Calendar
  • Streams
  • Liquipedia
  • Features
  • Store
  • EPT
  • TL+
  • StarCraft 2
  • Brood War
  • Smash
  • Heroes
  • Counter-Strike
  • Overwatch
  • Liquibet
  • Fantasy StarCraft
  • TLPD
  • StarCraft 2
  • Brood War
  • Blogs
Forum Sidebar
Events/Features
News
Featured News
[ASL22] Ro24 Preview: Siren's Call8[ASL22] Ro24 Preview: Summer's End9Serral wins HomeStory Cup 2915Serral wins Maestros of the Game 244ByuL, and the Limitations of Standard Play3
Community News
New 3v3 BGH Ladder (and more) on ShieldBattery!29Weekly Cups (August 17-23): Zerg dominate the week4Weekly Cups (August 10-16): SHIN doubles2GSTL Returns in 2026!45Weekly Cups (Aug 3-9): Protoss get shut out7
StarCraft 2
General
Starcraft2 player guess game is Coming~! How would you feel about frequent/monthly balance patches for SC2? Weekly Cups (August 17-23): Zerg dominate the week SC4ALL II: SC2 Player Announcement 6/8 - Maru PhD study /w SC2 - help with a survey!
Tourneys
Sparkling Tuna Cup - Weekly Open Tournament 2026 GSTL Announcement IntoTheTV X SOOP SC2 League : Weekly & Monthly PIG STY FESTIVAL 8.0! (13 - 23 August) WORTEX 2026 - Hungarian SC2 Finals Budapest
Strategy
[G] Having the right mentality to improve
Custom Maps
Nexus Wars 2021 GUIDE [M] (2) Industrial Park
External Content
Mutation # 540 Dodge This The PondCast: SC2 News & Results Mutation # 539 Thunder Dome Mutation # 538 Media Blackout
Brood War
General
New 3v3 BGH Ladder (and more) on ShieldBattery! [ASL22] Ro24 Preview: Siren's Call Farewell Beloved Starcraft (Youtube Videos) BGH Auto Balance -> http://bghmmr.eu/ BW General Discussion
Tourneys
[ASL22] Ro24 Group F [ASL22] Ro24 Group E [ASL22] Ro24 Group D Small VOD Thread 2.0
Strategy
Game Theory for Starcraft Replay Review Process - What do you do? Odyssey Mineral Stack Saturation Fighting Spirit mining rates
Other Games
General Games
General RTS Discussion Thread Nintendo Switch Thread Anyone here play Quakeworld back in the day? Stormgate/Frost Giant Megathread EVE Corporation
Dota 2
Official 'what is Dota anymore' discussion
League of Legends
[TL LoL EUW IHs] Teemo shall perish TSM pausing esports and CLG Dead
Heroes of the Storm
Heroes of the Storm 2.0
Hearthstone
Deck construction bug
TL Mafia
TL Mafia Power Rank TL Mafia Community Thread NeO.D_StephenKing vs This Guy From 1 Million Dance
Community
General
US Politics Mega-thread Russo-Ukrainian War Thread Dating: How's your luck? Artificial Intelligence Thread Canadian Politics Mega-thread
Fan Clubs
The Creator Fan Club MarineLorD Fan Club The ShoWTimE Fan Club
Media & Entertainment
Movie Discussion! Anime Discussion Thread
Sports
Football (Soccer) Thread TeamLiquid Health and Fitness Initiative For 2023 MLB/Baseball 2023 NBA General Discussion
World Cup 2022
Tech Support
Computer Build, Upgrade & Buying Resource Thread
TL Community
The Automated Ban List Northern Ireland Global Starcraft
Blogs
Young Players Exit Esports E…
TrAiDoS
LOCKPICKING NOOB
LUCKY_NOOB
Cathedral Of CS And NY pizza a…
FuDDx
Please support my new stand…
Peanutsc
Hello guys!
LIN1s
Customize Sidebar...

Website Feedback

Closed Threads



Active: 7368 users

Java help

Blogs > shmay
Post a Reply
shmay
Profile Blog Joined July 2004
United States1091 Posts
Last Edited: 2008-03-05 05:06:32
March 05 2008 05:05 GMT
#1
Copied from my Hw:

Write a method with the following signature:

public static String oneByte (int value, int byteNum)

This method take in an integer and return, as a String, the specified byte (0-3, numbered right to left) of value as a hexadecimal number.



My question: what the hell is my teacher asking? What does the 0-3 part mean?

Help! Thank you!

***
pheer
Profile Blog Joined July 2004
5402 Posts
March 05 2008 05:14 GMT
#2
I have no idea what the 0-3 part means, but you can just convert INT -> HEX using the built in functions, then convert that to a string. Maybe the 0-3 part is what makes it more than 2 lines of work?
Moderator
Raithed
Profile Blog Joined May 2007
China7078 Posts
March 05 2008 05:18 GMT
#3
0123 ?
AcrossFiveJulys
Profile Blog Joined September 2005
United States3612 Posts
March 05 2008 05:19 GMT
#4
One byte = 1 character
strings are basically a bunch of characters...

if you have something like this

word

'd' is byte 0, 'r' is byte 1, 'o' is byte 2, and 'w' is byte 3 by your teacher's convention.

so the first part is just figuring out how to locate the part of the string that the byte# corresponds to. youll have to do something like

public static String oneByte (int value, int byteNum) {
// convert integer into string
String s = ...

// get byte index
int byteIndex = (s.length() - byteNum) - 1;

// extract the character
char c = s.substring(byteIndex);

// convert into hex
int h = ...

return h;

}

i dont remember java syntax too well, been a couple years. hope this helps.
shmay
Profile Blog Joined July 2004
United States1091 Posts
Last Edited: 2008-03-05 05:27:51
March 05 2008 05:21 GMT
#5
On March 05 2008 14:14 pheer wrote:
I have no idea what the 0-3 part means, but you can just convert INT -> HEX using the built in functions, then convert that to a string. Maybe the 0-3 part is what makes it more than 2 lines of work?


We can't use stuff from the API for the hex conversion
SonuvBob
Profile Blog Joined October 2006
Aiur21552 Posts
March 05 2008 05:23 GMT
#6
On March 05 2008 14:14 pheer wrote:
I have no idea what the 0-3 part means, but you can just convert INT -> HEX using the built in functions, then convert that to a string. Maybe the 0-3 part is what makes it more than 2 lines of work?

32 bit int = 4 bytes. :p
Administrator
shmay
Profile Blog Joined July 2004
United States1091 Posts
March 05 2008 05:29 GMT
#7
oh I see. cool, thank you guys, especially across
AcrossFiveJulys
Profile Blog Joined September 2005
United States3612 Posts
March 05 2008 05:33 GMT
#8
in my post i forgot to mention that you need to turn the hex value you obtain into a string before you return it.
Macavenger
Profile Blog Joined January 2008
United States1132 Posts
Last Edited: 2008-03-05 05:57:56
March 05 2008 05:55 GMT
#9
Across is returning an int when the method signature asks for a String, though. I assume the return should be a string of either 2 characters (giving the integer value of the byte in hex) or 8 characters (giving the byte in binary). Doing it in binary is more work, although much cleaner in converting from int to String, at least for the first method that jumps out at me. I'll try to write out how I would do this for binary, since it's easier to write out:

public static String oneByte (int value, int byteNum) {

// initialize a string to store the return value in
String result = "";

// This division on value will eliminate all bytes lower than byteNum
// Equivalent to dividing a decimal number by 10^3 to get rid of the last 3 digits, for example
value = value / (256 ^ byteNum);

for ( int i = 1; i > 8; i++) {

// Taking the mod 2 of value gives us the value of the last digit
// Since mod 2 returns either a 1 or a 0, we don't need anything else in the if statement,
// but doing value % 2 == 1 might be a bit more readable
if value % 2 {

// We're finding bits from right to left, so when we get a new one,
// it needs to be put at the front of the string
result = "1" + result;
}

else {

result = "0" + result;

}

// Now that we've determined the rightmost remaining bit, we need to get rid of it to find the rest
value = value / 2;

}

// Now we've found all 8 bits and stored them in proper order, so return
return result;

}

Hopefully that syntax isn't too far off, I haven't coded in java in a while. Also hope you can read that, WTB [code] tags on TL so I can format things.

Doing it Hex would give a cleaner result, just 2 characters 0-f. The method is basically the same, except you take the modulo 16 and divide by 16 twice, and have to deal with sorting 15 = f, 10 = a etc. into the string. A big ugly case statement is the easiest way I can think of to do that off the top of my head, and I didn't want to write then, hence why I did it in binary.

Edit: looking at what you said about the API limitation again, what across did is probably fine once you convert it to a string. I read it originally as saying you couldn't convert between types for some reason, which I don't think is right now. Thus doing it via string and not my crazy math way is probably fine, but at least I had fun working this out.
AcrossFiveJulys
Profile Blog Joined September 2005
United States3612 Posts
March 05 2008 06:49 GMT
#10
lol MacAvenger overrrrrkillllll

I suppose that's a faster method than mine though since you are doing it in binary and not making API calls to convert back and forth between types.
azndsh
Profile Blog Joined August 2006
United States4447 Posts
Last Edited: 2008-03-05 07:11:50
March 05 2008 07:10 GMT
#11
I don't think anyone has posted the correct solution/interpretation.

An int is 32 bits, or 4 bytes. This can be expressed as 32 digits in binary or 8 digits in hexadecimal. For example

int a = 13371337 would be

00000000 11001100 00000111 11001001
in binary as split into 4 bytes.

or

00 CC 07 C9
in hexadecimal as split into 4 bytes

oneByte (a, 0) would return "C9"
oneByte (a, 1) would return "07"
etc.

That's what the problem is asking. It's pretty much your job to figure out how to actually calculate those return values.
shmay
Profile Blog Joined July 2004
United States1091 Posts
Last Edited: 2008-03-05 07:29:57
March 05 2008 07:21 GMT
#12
yeah, you're correct azndsh. i learned that soon after i tried implementing it. that's what i needed. ty
Macavenger
Profile Blog Joined January 2008
United States1132 Posts
March 05 2008 07:55 GMT
#13
azndsh, that's the interpretation I was working off when I designed mine. I'm pretty sure that's what both Across and I are doing, unless you see something in our code we don't Well, my code is returning the binary value "11001001" instead of "C9", but unless it specifies in the problem statement whether to return in binary or hex either should be valid.
azndsh
Profile Blog Joined August 2006
United States4447 Posts
March 05 2008 09:16 GMT
#14
the problem specifies the hex value, and also, it's probably best not to post the actual solution, but to let the person figure out the actual programming part
shmay
Profile Blog Joined July 2004
United States1091 Posts
March 05 2008 09:48 GMT
#15
Any tips on how to go about this? I converted the int to a 4 byte array, but I have no idea how to manually convert one of those bytes to hex.
shmay
Profile Blog Joined July 2004
United States1091 Posts
Last Edited: 2008-03-05 11:06:12
March 05 2008 10:00 GMT
#16
cancel the byte array, now have this:

value = ((value << (8*byteNum)) >>> 24) & 0x000000ff;

still open for hints on the hex conversion

edit: nm, I think i have it. don't worry.

got it
Cambium
Profile Blog Joined June 2004
United States16368 Posts
March 05 2008 19:29 GMT
#17
This makes perfect sense...

Since an int is 32 bits, it has 4 bytes (hence 0 - 3).

Numbered right to left means.... 3-2-1-0.

It basically asks you to take a chunk of the integer and output it in hex.
When you want something, all the universe conspires in helping you to achieve it.
Cambium
Profile Blog Joined June 2004
United States16368 Posts
Last Edited: 2008-03-05 19:46:42
March 05 2008 19:43 GMT
#18
I got held up answering some email, here's the solution... I think (I'm not gonna run it).

Pretty easy...

public static String oneByte (int value, int byteNum)
{
String binaryCode = Integer.toBinaryString(value);
int returnValue = Integer.parseInt( binaryCode.substring( (3 - byteNum) * 8, (3 - byteNum) * 8 + 7 ), 2 );
return Integer.toHexString( returnValue );
}
When you want something, all the universe conspires in helping you to achieve it.
FreeZEternal
Profile Joined January 2003
Korea (South)3396 Posts
March 05 2008 21:08 GMT
#19
public static String oneByte(int value, int byteNum){
byte[] byteHolder = new byte[4];
//Little-indian.
byteHolder[3] = (byte)((value >> 24) & 0xff);
byteHolder[2] = (byte)((value >> 16) & 0xff);
byteHolder[1] = (byte)((value >> 8) & 0xff);
byteHolder[0] = (byte)(value & 0xff);
return "0x" + Integer.toHexString(byteHolder[byteNum] & 0xff);

}
Please log in or register to reply.
Live Events Refresh
Replay Cast
00:00
2026 GSTL: Main Stage Day 2
Discussion
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
WinterStarcraft526
ProTech150
StarCraft: Brood War
Leta 126
Dewaltoss 81
Mind 47
Bale 19
ZergMaN 11
NotJumperer 1
firebathero 0
League of Legends
JimRising 563
Super Smash Bros
Mew2King175
Other Games
ceh9500
Happy257
[ Show 12 non-featured ]
StarCraft 2
• Berry_CruncH360
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• Migwel
StarCraft: Brood War
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
Dota 2
• lizZardDota2152
League of Legends
• Rush1359
Other Games
• WagamamaTV174
Upcoming Events
The PondCast
2h 13m
Replay Cast
16h 13m
Escore
1d 2h
IntoTheTV X SOOP
1d 3h
Korean StarCraft League
1d 18h
GSL
2 days
Replay Cast
2 days
Sparkling Tuna Cup
3 days
WardiTV Weekly
3 days
Afreeca Starleague
4 days
[ Show More ]
GSL
5 days
PiGosaur Cup
5 days
Replay Cast
6 days
Liquipedia Results

Completed

CSL Season 22: Qualifier 1
PiG Sty Festival 8.0
META DYMY #4

Ongoing

KCM Race Survival 2026 Season 3
K-JUNGMAN
ASL Season 22
Super Anchor Qualifying S3
CSL Season 22: Qualifier 2
RSL Revival: Season 6
Light Tournament 2026
BLAST Open Fall 2026
Esports World Cup 2026
Esports World Cup 2026: LCQ
BLAST Bounty Summer 2026
BLAST Bounty Summer Qual
Stake Ranked Episode 3
XSE Pro League 2026
IEM Cologne Major 2026

Upcoming

BSL 2026 LAN: Kraków
CSL 2026 AUTUMN (S22)
Acropolis #5
Acropolis #5 - TRS
Blizzard Classic Cup 2026
Acropolis #5 - GSA
Acropolis #5 - GSB
HSC XXX
SC4ALL II: StarCraft II
Kung Fu Cup 2026 Grand Finals
RSL Offline Finals
Calamity Invitational
Big Dog Cup 2026 Div 1
IEM Beijing 2026
Stake Ranked Episode 5
PGL Masters Bucharest 2026
Thunderpick World Champ. '26
ESL Pro League Season 24
Stake Ranked Episode 4
1win Private Club #1
Logitech G Play Connect 2026
SL StarSeries Fall 2026
FISSURE Playground #3
TLPD

1. ByuN
2. TY
3. Dark
4. Solar
5. Stats
6. Nerchio
7. sOs
8. soO
9. INnoVation
10. Elazer
1. Rain
2. Flash
3. EffOrt
4. Last
5. Bisu
6. Soulkey
7. Mini
8. Sharp
Sidebar Settings...

Advertising | Privacy Policy | Terms Of Use | Contact Us

Original banner artwork: Jim Warren
The contents of this webpage are copyright © 2026 TLnet. All Rights Reserved.