• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EST 16:18
CET 22:18
KST 06:18
  • 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
ByuL: The Forgotten Master of ZvT25Behind the Blue - Team Liquid History Book17Clem wins HomeStory Cup 289HomeStory Cup 28 - Info & Preview13Rongyi Cup S3 - Preview & Info8
Community News
Weekly Cups (Feb 9-15): herO doubles up2ACS replaced by "ASL Season Open" - Starts 21/0241LiuLi Cup: 2025 Grand Finals (Feb 10-16)46Weekly Cups (Feb 2-8): Classic, Solar, MaxPax win2Nexon's StarCraft game could be FPS, led by UMS maker16
StarCraft 2
General
Behind the Blue - Team Liquid History Book ByuL: The Forgotten Master of ZvT Liquipedia WCS Portal Launched Kaelaris on the futue of SC2 and much more... How do you think the 5.0.15 balance patch (Oct 2025) for StarCraft II has affected the game?
Tourneys
PIG STY FESTIVAL 7.0! (19 Feb - 1 Mar) Sparkling Tuna Cup - Weekly Open Tournament StarCraft Evolution League (SC Evo Biweekly) How do the "codes" work in GSL? LiuLi Cup: 2025 Grand Finals (Feb 10-16)
Strategy
Custom Maps
Map Editor closed ? [A] Starcraft Sound Mod
External Content
Mutation # 514 Ulnar New Year The PondCast: SC2 News & Results Mutation # 513 Attrition Warfare Mutation # 512 Overclocked
Brood War
General
A cwal.gg Extension - Easily keep track of anyone Do you consider PvZ imbalanced? Recent recommended BW games BGH Auto Balance -> http://bghmmr.eu/ BW General Discussion
Tourneys
[Megathread] Daily Proleagues Escore Tournament StarCraft Season 1 Small VOD Thread 2.0 KCM Race Survival 2026 Season 1
Strategy
Simple Questions, Simple Answers Zealot bombing is no longer popular? Fighting Spirit mining rates Current Meta
Other Games
General Games
Battle Aces/David Kim RTS Megathread Diablo 2 thread Nintendo Switch Thread ZeroSpace Megathread Path of Exile
Dota 2
Official 'what is Dota anymore' discussion
League of Legends
Heroes of the Storm
Simple Questions, Simple Answers Heroes of the Storm 2.0
Hearthstone
Deck construction bug Heroes of StarCraft mini-set
TL Mafia
Vanilla Mini Mafia TL Mafia Community Thread Mafia Game Mode Feedback/Ideas
Community
General
Mexico's Drug War US Politics Mega-thread Russo-Ukrainian War Thread Canadian Politics Mega-thread Ask and answer stupid questions here!
Fan Clubs
The IdrA Fan Club The herO Fan Club!
Media & Entertainment
[Req][Books] Good Fantasy/SciFi books [Manga] One Piece Anime Discussion Thread
Sports
2024 - 2026 Football Thread Formula 1 Discussion TL MMA Pick'em Pool 2013
World Cup 2022
Tech Support
TL Community
The Automated Ban List
Blogs
ASL S21 English Commentary…
namkraft
Inside the Communication of …
TrAiDoS
My 2025 Magic: The Gathering…
DARKING
Life Update and thoughts.
FuDDx
Customize Sidebar...

Website Feedback

Closed Threads



Active: 1544 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
5398 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
Aiur21550 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
Next event in 2h 42m
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
elazer 202
ProTech137
JuggernautJason110
Nathanias 108
BRAT_OK 97
StarCraft: Brood War
Britney 14735
Mini 134
actioN 102
Sacsri 12
soO 9
Dota 2
qojqva1671
LuMiX0
League of Legends
tarik_tv6088
Counter-Strike
byalli1294
Super Smash Bros
Mew2King102
Heroes of the Storm
Khaldor404
Other Games
Grubby4046
FrodaN2818
Liquid`RaSZi1807
fl0m1565
Beastyqt854
B2W.Neo829
summit1g590
RotterdaM309
Harstem223
ToD207
KnowMe132
Liquid`Hasu127
Organizations
Other Games
gamesdonequick1318
StarCraft 2
angryscii 26
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
sctven
[ Show 17 non-featured ]
StarCraft 2
• Berry_CruncH187
• davetesta32
• Response 7
• LaughNgamezSOOP
• sooper7s
• AfreecaTV YouTube
• intothetv
• Migwel
• Kozan
• IndyKCrew
StarCraft: Brood War
• STPLYoutube
• ZZZeroYoutube
• BSLYoutube
Dota 2
• WagamamaTV532
League of Legends
• Doublelift1871
Other Games
• imaqtpie1115
• Shiphtur197
Upcoming Events
Replay Cast
2h 42m
Replay Cast
11h 42m
Wardi Open
14h 42m
Monday Night Weeklies
19h 42m
OSC
1d 2h
WardiTV Winter Champion…
1d 14h
Replay Cast
2 days
WardiTV Winter Champion…
2 days
The PondCast
3 days
Replay Cast
4 days
[ Show More ]
Korean StarCraft League
5 days
CranKy Ducklings
5 days
SC Evo Complete
5 days
Replay Cast
6 days
Sparkling Tuna Cup
6 days
uThermal 2v2 Circuit
6 days
Liquipedia Results

Completed

[S:21] ASL SEASON OPEN 1st Round
LiuLi Cup: 2025 Grand Finals
Underdog Cup #3

Ongoing

KCM Race Survival 2026 Season 1
Proleague 2026-02-22
WardiTV Winter 2026
PiG Sty Festival 7.0
Nations Cup 2026
PGL Cluj-Napoca 2026
IEM Kraków 2026
BLAST Bounty Winter 2026
BLAST Bounty Winter Qual
eXTREMESLAND 2025
SL Budapest Major 2025

Upcoming

Acropolis #4 - TS5
Jeongseon Sooper Cup
Spring Cup 2026
[S:21] ASL SEASON OPEN 2nd Round
[S:21] ASL SEASON OPEN 2nd Round Qualifier
Acropolis #4 - TS6
Acropolis #4
HSC XXIX
uThermal 2v2 2026 Main Event
Bellum Gens Elite Stara Zagora 2026
RSL Revival: Season 4
PGL Astana 2026
BLAST Rivals Spring 2026
CCT Season 3 Global Finals
FISSURE Playground #3
IEM Rio 2026
PGL Bucharest 2026
Stake Ranked Episode 1
BLAST Open Spring 2026
ESL Pro League Season 23
ESL Pro League Season 23
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.